Ciol.com (India): Selling in the Bazaar : How Open Source Manages CodeNov 19, 2000, 16:37 (0 Talkback[s])
(Other stories by Niramiai Rikishi)
"In the first part of this series we looked at some of the background that surrounds open source and software development. In this part, we will discuss and focus on successful open source projects and try to understand what makes them so successful."
"There are two well known open source development models. The first model, is one most famously followed by Linux and in some sense Perl. It is often known as the benevolent dictator (BD) model. In this model, a well known authority or established figure is the overall controller of the entire project. Overall design and long term decisions are taken by this person. All bug fixes, coding issues and implementation details could be handled by associates or maintainers for the individual parts of the code. The name for this model stems from the fact that while the leader of the project chooses to remain neutral and evaluate proposals on their merit, once in a way, a particular design decision could be made by the dictator right against the code maintainers'' choice. This privilege of pulling rank in an open source project is used rather infrequently. In the case of Linux, Linus Torvalds, guides the code and in many ways, the overall direction that the Kernel takes (note the Kernel != Linux). In the meantime, he has been content to let companies battle to position Linux in various positions, as they see fit. By being neutral to the various niches, he can avoid seeming to lean towards any particular company or distribution. Larry Wall has also performed a similar role for Perl, although with recent versions of Perl notably Perl6 this BD known as a language designer, albeit that term is used as wine would be in a different bottle. This model is highly adaptable and mobile. In the truest sense of the word, this model can allow developers to modify code quickly and easily to suit requirements. This model depends highly on the BD and his ability to foresee the eventual direction of the project, manage design issues and if the need arises apply bug fixes and write quality code."