In looking for ways to describe the difference between open source and more traditional development methodologies I came up with this little analogy. This is a subject that is surprisingly hard to understand, and it goes against the theories of industrialization that we have been taught since grade school. But, it is important to understand, and here is one analogy that might help even though it is a little macabre.

I would like to bring forward the example of butchering a cow. A butcher is very methodical about how the cow is sliced, making sure there is no wasted movement, and that the cow is split in well defined pieces. But, a butcher is also doing a cost-benefit analysis on his cutting. He leaves hard to get, high effort, meat on the carcass because it is more efficient for him to leave that meat, and move on to another cow. This is how standard software development works. It is efficient when you look at the per-worker costs, but it does involve several trade offs through out the development process.

In the open source development model the cow problem is solved like a school of piranha. Everyone attacks the larger problem, but at different points and takes very small, but effective bites. Now, this isn't as efficient as the butcher in the amount of energy that expended removing the meat from the body of the cow, but it is distributed such that each fish does a little bit of the work. And, in the end, there is no meat left on any of the bones as even the little compromises get consumed.


posted Dec 27, 2004 | permanent link