Open Source Development
The way of which most Open Source software evolve is rather strange, to those outside the community. But it does make sense, and is working well...
It all begin with a programmer "scratching his personal itch". An Open Source programmer usually writes software to address his own needs, if not for fun. Because of his love for the software, and the fact that he himself will be using it, the programmer puts in extra effort in developing the software. Of course, the software is then shared, usually under the terms of an open source license.
Another programmer discovers the software, and find that there are something missing, from his point of view. Therefore, he implement the parts he needs, and send his patches back to the original author to be included in the next release. Collaboration among the programmers is done over the Internet, usually via email. Such collaboration effort is made possible by the mutual trust within the community. This cycle repeats continously until...
When the software gain a massive following. There will be a small team of zealots working on the software like mad, while the rest doing their parts by submitting patches, reporting bugs, etc. At this point, the software should be stable enough for production use, but the development doesn't end here. As time goes by, it improves in all directions, tho' at a slower pace, for it always has the great Open Source people behind it.
