archives

The Myth of the Genius Programmer

The Myth of the Genius Programmer, Brian Fitzpatrick and Ben Collins-Sussman, Google I/O Conference 2009

This video is tangentially off topic, but I think it will be of interest the community here. There are several aspects that mesh with various ideas on the Meta-LTU Thread.

One recurring theme in Ben and Brian's talk is that while you usually cannot solve sociological problems via technology, there are often small software tweaks that you can do to significantly improve the behaviour of people using a computer network. Choosing the right defaults is a rather important task!

They also talk about launching open-source projects, especially with regard to seeking collaborators and building community. It can be done too quickly and early, but they argue that more often this is done too late.

Brian and Ben's talk seems to be, in part, a response to Linus Torvalds' Google Tech Talk on GIT, which used a certain kind of rhetorical hyperbole to express his point. This is in stark contrast to the presentation style that Brian and Ben used.

Now, I suspect that many people will like one of the talks, and dislike the other, but I actually really like both. Linus's talk focuses mainly on the technical decisions behind GIT, and lambastes some of technical decisions behind SVN, which Brian and Ben started. Brian and Ben spend some time defending some of the decision making that went into SVN, although they adopt an agnostic "wait and see" attitude on the technical differences.

A major part of Linus's sales pitch is that GIT tends to hide "bad branches" and encourages experimentation, so that you don't have to know what everybody else is doing. Ben and Brian point out the importance of community and the value of documenting failure. I should emphasize that their reasons for documenting failure is not for ridiculing or disciplining programmers, but rather to help others learn from these mistakes, and hopefully help to avoid them in the future.

I daresay that discussions on LtU usually have a very "Brian and Ben" tone to them. In an interesting parallel, I'll point out that I found this via Reddit, and I find the discussion of this particular story there to be sorely disappointing thus far. Reddit is built on different technology, serving a larger community, and has it's own unique community dynamics.

So, to summarize, these two talks are polar opposites in communication style. They both discuss community dynamics, and while there is some disagreement in the respective ideals, there is much more agreement than there is disagreement. They both emphasize importance of the "right defaults" and the ability of technology to impact community behavior. And of course, there is discussion of version control systems, something that should be of interest to every serious programmer.