Github, so we are told, is the most popular source code hosting website on the planet. With nearly a million registered users and 2.5 million repositories, it is certainly impressive. But if you look at what kind of projects are actually hosted on Github, a certain picture emerges.
Take a look at its list of about eighty or so “interesting” repositories, for starters. There’s a lot of cool stuff there: Prototype, Scriptaculous, Ruby on Rails, MooTools, Groovy, Sinatra, Redis, Symfony, and so on. The list changes from time to time, and I have no idea what criteria are used to construct it, but at the time of writing, with only one exception — phpBB — every single repository on the list is either a programming language, or a programming framework or library, or a programming tool.
You can see something similar — and quite surprising — when you look at the list of most popular languages on Github. The dominance of JavaScript, Ruby and Python is not all that surprising, but the fourth most popular language on Github is Shell. In other words, bash scripting — the Linux equivalent of DOS batch files or PowerShell.
C# — probably the most sought-after programming language by employers in the Real World — does not appear in the top ten. Clicking through to it from the right hand column shows that it is number twelve. But which is number eleven? After a minute or two of clicking on educated guesses then completely at random, I discovered, much to my surprise, that it is actually VimL.
I kid you not. Github apparently has more repositories dedicated to the scripting language for Vim — a console-based text editor mainly used by hard-core geeks — than to C#.
Why am I highlighting these things? Because they are indicative of a problem that seems to be plaguing the open source world and the programming blogosphere these days. There is far too much of a focus on processes and tools, and not enough of a focus on individuals and interactions. I’ve been getting too much inclined that way myself in the past couple of years here on my blog and on Twitter, and I’m getting weary of it.
You can understand why this would be. Programming languages, tools and frameworks are fun to work on because they’re hard and make you a better programmer, they scratch a personal itch, and they look good if you’re trying to attract the attention of trendy startups in Silicon Valley. And of course these things are important. But they are written by open source developers, for open source developers. They are of no direct interest whatsoever to non-developers.
Where are all the WordPress plugins and themes? The personal productivity software? Personal finance? Health and fitness? Photo and video editors? Education? Motoring? Foreign language learning? E-commerce? Geolocation? Astronomy? Twitter and Facebook clients? Games? Screensavers? Android and iPhone apps? Yes, they’re out there, but you have to hunt for them. And among all the blog posts about how CQRS, NoSQL and IOC containers are so cool, where are all the success stories telling us how they’re being used in the Real World?
Programming does not exist in a vacuum, folks. If we were serious about the Agile slogan, “Individuals and interactions over processes and tools,” projects aimed at non-developers would predominate. As it is, a lot of it seems like a case of programming for programming’s sake.
A lot of developers are introverts, and find it easier to spend time writing code than interacting with people. But if you want to produce something that’s really useful, you need to spend some time getting out from behind the computer, developing other hobbies and interests, and interacting with people. After all, that’s where the ideas for useful software come from in the first place.
Being a successful developer really does require you to put individuals and interactions over processes and tools.

Comments
4 responses to “Individuals and interactions over processes and tools”
I do not think that github is biased towards things that appeal to developers. If I look at where things I (and my family) use for other than developing they are hosted, most developers host their own (e.g. Evince, Firefox, Sylpheed) or use SVN at one of the old established places like (e.g. Wsenoth on GNA, Celesta on Sourceforge).
Most people who create WordPress themes probably do not know how to use a VCS, even if they know what one is.
A better sample of what open source developers do might be a look through a linux repository. Doing that, I see a pretty good mix.
I do not think that github is biased towards things that appeal to developers. If I look at where things I (and my family) use for other than developing they are hosted, most developers host their own (e.g. Evince, Firefox, Sylpheed) or use SVN at one of the old established places like (e.g. Wsenoth on GNA, Celesta on Sourceforge).
Most people who create WordPress themes probably do not know how to use a VCS, even if they know what one is.
A better sample of what open source developers do might be a look through a linux repository. Doing that, I see a pretty good mix.
Oosp that should read “I think github IS biased”
[…] James McKay有不同的看法,他在博客中提出:工具是很重要,但是优秀的软件开发人员会把重点放在他们自己的流程上,而不是供人们使用的工具上: 如果我们真的严肃对待敏捷的口号——“个体和交互胜过流程和工具”,瞄准非开发人员的项目将会占主导地位。可现实并非如此,看起来,很多项目还是要靠程序员来完成的,似乎专为他们而存在。 很多开发人员都比较内向,觉得花时间写代码要比跟人打交道更容易。可要是你想做出一些真得很有用的东西,你就得花时间从电脑后面走出来,发展其他的爱好和兴趣,跟人们交流。不管怎么说,实用软件的想法都是先从这些地方冒出来的。 […]