Thursday, November 21, 2013

2^n Heads Are Better Than One

Many computer scientists have studied how to make software in a more efficient way. Possibly the most famous of the theories to come from these studies is Brooks's Law: "Adding manpower to a late project makes it later". This theory is based on the cost of bringing new guys "up to speed" and the cost of communication among programmers. With these factors in mind this theory holds true.

But what happens when those factors are no longer present? In this modern age, communication has become cheap. Since Frederick Brooks wrote his law, many new communication tools have come into being, namely email, forums, blogging, instant messaging, and many more. For example, it has become easier to share what's on your mind through Facebook, text messages and blogging; and now news often spreads more quickly among normal citizens than through professional media. This phenomena has affected the software industry as well. Open source software is written by many developers across the entire globe; but because of easier communication, they can easily share ideas. Also, since the new developers on the project bring themselves up to speed, nobody else looses time doing it. Clearly Brooks's Law does not apply to software projects like this.

We should keep in mind that corporations and open source groups have different goals. Corporations are trying to make money with their software, while open source groups just want to make software. Similarly professional media outlets expect money for providing news; the general public just want to spread the word. We have seen a huge cut of the market share taken about from the professional news reporters. The cut from professional software corporations hasn't been so big, and I doubt it will grow too much more. Building software is a more profitable business than sharing the news. It seems that when money is not a concern, more people do get the job done better. So I guess it is true that 2 (or maybe a lot more) heads are better than one.

1 comment:

  1. Keep in mind, too, that corporations are generally designed in a top-down structure. In a corporation, the new guy having a different picture of the software than the guy in charge is a bad thing, and it takes time to get the new guy on board with the current mindset. In contrast, in open source, if the new guy has a different idea of how the software could work, more power to him - if it works, it'll take off, and if it doesn't, it'll die out.

    ReplyDelete