If you compare the way software is developed under an open-source approach and a traditional proprietary approach, you might reasonably conclude that both approaches have their strengths and weaknesses - and that those strengths and weaknesses spring from the very different organizational models they use. An open-source project has the advantage of mobilizing a whole lot of eyeballs: getting many different programmers with different perspectives and backgrounds - many of whom are also actual users of the software - to contribute to solving problems, adding features, and fine-tuning the code. But it has the disadvantage of relatively weak coordination - the programmers are usually at a distance from one another, which impedes collaboration. A proprietary project, by contract, has the advantage of rich collaboration - the programmers typically work for the same company, have the same bosses, go to the same meetings, and are even in the same building. On the other hand, the team is smaller and more homogeneous and probably not as tightly connected to the users of the software - there are a lot fewer eyeballs.