Day 3: Keynotes: Open Source Software Development Methodologies



Larry presented the panel, filled with brilliant programmers. On Larry's left: Jeremy Allison, one of the main developers from the Samba Team, Linus Torvalds author of Linux, Dirk Hohndel, lead of XFree86 and on Larry's right, Brian Behlendorf from the Apache team, Chip Salzenberg one of the main perl maintainers and Jordan Hubbard, leader of the FreeBSD team.

[picture]

[picture]

Jeremy explained that for Samba, they have benevolent dictatorship done by the Samba team, who contains the most active contributors. People who send more and more good patches and find bugs eventually get punished by having commit access so that they can fix the bugs directly :-). Most points are discussed on the mailing list, so there are few surprises.

For Linux, as Linus explained with humour, there is no real coordination or development model. Linus has the main tree and a few trusted people can get patches in without too many problems whereas the common user has much less of a chance to get his/her patch committed directly.
For Linux, the traffic on the linux kernel list is interesting as you find all kinds of uses. Main developers exchange ideas there, answer some questions, some other people submit patches for peer review, and after they get reviewed and sometimes improved, they eventually are submitted to Linus who puts it in the kernel if all goes well.
From time to time, people will submit a brilliant patch directly through Linus who will sometimes agree that it is indeed a great idea, and either apply the patch or rewrite it while using the same concept.

As for XFree86, there is a closed team of 650 developers with a core team of 12 people, and 3 people who are the source maintainers and handle the official releases.
Once patches are written and possibly reviewed on the mailing list, it is sent to an Email address that spools all the patches. The hard part, as Dirk explained is to reject a patch that was written by someone who possibly spent a lot of time writing it. A rejection has to be a unanimous vote among the three source maintainers.
Most of the people who work on XFree86 started contributing because they had an unsupported card, or a problem with an existing driver, and after contributing a few patches, then got hooked.

For Apache, Brian recounted that it grew out of a few people who had patches against the NCSA server. Today the core team of people has grown to 25 members.
For Apache, there is a vote system of yes and vetoes from the core team members and if there are a few yes, and no veto, the code is usually included, even if there is a problem later, because the code can then be removed.
Some core members can go an a "sabbatical" from time to time, and when release time comes, someone gets nominated to do the source release.

Chip explained that up to Perl 5.000, Larry Wall was doing all the releases, and later he started handing off work to other people on the perl5-porters mailing list as the amount of work became overwhelming. A few people take turns to be in charge and become "trusted lieutenants". Larry Wall kind of appoints a prime minister who changes from time to time.
All the patches are sent to the mailing list, even by the "pumpkin holder" (the person who is currently in charge of applying patches). Unless there is a major veto, the patch gets applied.
Chip noted that getting people to work on Perl is easier than getting them to work on the Linux kernel for instance, so it's easier to get developers.

For FreeBSD, there is a 15 member core team, and about 160 people who can commit to the main CVS tree. People can be promoted to commiters when they have interesting patches and the need arises.
With so many people in the FreeBSD team, there is a style guide, and most people agree on how to do most things. If a commiter doesn't do the right thing, he/she can easily have the commit bit removed.
Then, the core members can be dictators if needed, but it's usually not more than twice a year or so than a patch gets backed out.
As for losing people, it has happened, obviously everyone can't always be happy, but developer retention is fairly good. Then, it's an ego issue, people contribute because they'd like their name to be known.



[library] Picture library [back] Back to Main Page [next] Next page


[ms free site] Email
Link to Home Page

99/08/13 (04:50): Version 1.0