Alan Cox emailed me this morning to note a presentation he gave way back in 2000 called "Dear Mr Brooks, or: Software engineering in the free software world." It's no surprise to me that (on the topic of optimally sized development teams) was better articulated by Alan many years ago.
What was surprising is just how prescient Alan's talk was. And how informative. For anyone who has ever wondered how open-source software development works compared to proprietary-software development, this is an absolute must read. Alan is one of the most influential developers of the Linux kernel, and his experience shows through.
Among many other interesting points, I really liked Alan's discussion of how project momentum begins and how marketing is important but different in open source:
When you release a free software project, you do things in a different order. Firstly, you get some code. Hopefully, it just about works. And you document it as "Needs fixing, needs this, needs that."
But most free software code, to get other people involved in the project, it has to work. It doesn't matter if it's hard to compile. It doesn't matter if it only works on one machine in five. And it doesn't matter if it eats the data file every so often. So long as sometimes, the right results happen, people will start to pick up the project and use it. They start to use it, and then they have to fix it.
You have marketing. Marketing is important in free software. This is why all free software projects nowadays have web sites. The goal is different. The goal in most conventional marketing is to get users, because users are the people who pay you money to improve the product, and the more users you get, the more you can charge for it because the harder it is to go somewhere else.
In the free software world, you do the marketing first, because the website initially is not targeted at the people who will use the software. What you are trying to do is to get developers interested in the actual application.
So you're hoping you can find people who see a use for this software who are also programmers, or documentors, or artists, even website designers. It's not uncommon for someone to put up a website for a project, someone will start using the code and say "Well, it's nice code, but I can't program -- but your website is awful" [Laughter] And so you'll find web designers and all sorts of people this way. [Added paragraphs for ease of reading.]
Alan's experience shows through. Open source is an alternative and, in my opinion, superior mode of software development. Alan's presentation is a detailed explanation of why.