February 3, 2005

Becoming a Debian developer

Author: Bruce Byfield

So you want to be a Debian developer? You're not the only one. Preparing software packages for the distribution, writing documentation, and testing a release are all
endless, thankless tasks. Yet, at any given time, hundreds have applied to do them. However, before candidates are trusted with such tasks, they have to prove not only their programming skills, but also their understanding of Debian processes and philosophy. The process takes months, and there are few exceptions.

Becoming a developer is not the only way to contribute to Debian. Translations and help for users are always needed. Anyone, too, can enter a bug, comment on one, or submit patches.

In fact, Martin Michlmayr, Debian Project Leader and a member of the New Maintainer Committee, strongly advises anyone interested in becoming a developer to make other contributions to Debian first. That way, they can learn what they need to know beforehand. They can also decide whether they are willing to commit the necessary time. Inactive developers are a continual problem, especially with package maintenance, and candidates who know what to expect are less likely to drop out after being accepted.

Just as importantly, because developers have access to the main servers, an important part of the processing of new developers is establishing that they are trustworthy. As Michlmayr notes, "[If] applicants have no track record at all, it will take much longer to establish this trust." In particular, unknown candidates are likely to be unable to complete the first step of the process, which requires finding existing developers to recommend them.

Yet, despite the obstacles, for many, becoming a developer is the ultimate goal. Asked their motivations, candidates start by talking about a wish to contribute and to assume greater responsibility.

When pressed, though, many add that they also desire the status of the position. The status lies not just the cool factor of having a Debian email address -- although several privately admit, half-jokingly, to lusting after one -- but a belief that only developers are taken seriously within the Debian project. Those who want to advocate policy change or to become a Debian officer often feel that becoming a developer is a necessary first step.

One way or the other, most would probably agree with Matthew Palmer, one of more than 50 Application Managers who help to process candidates, that being a Debian developer is a "mark of honour."

Applying to become a new developer is as simple as entering your name and email address. However, before an application is considered, candidates have to fulfill several prerequisites designed to ensure each candidate's competence and trustworthiness:

  • Candidates must agree to follow the Debian Social Contract and the Debian Free Software Guidelines in their work for the project.

  • Candidates must prove their identity by having at least one Debian Developer sign their GPG key. In extreme cases, a scanned driver's license or passport is accepted, but being well enough known to have your key signed makes meeting the rest of the prerequisites easier to meet as well. Perhaps it also prepares candidates for the key-signing parties that are an inevitable part of any gathering of the Debian community.
  • Candidates need to prove that they can do the required work. The easiest way to provide this proof is by finding a sponsor to oversee their work. For example, candidates who wish to become maintainers can be assigned an existing package or have their sponsor introduce a package that they have developed into the Debian archives. Although candidates cannot upload their work, and it is checked before being used, this requirement helps them understand exactly what they are volunteering for. If their interest is release management or quality assurance, Matthew Palmer suggests they may not wish to go any further. According to Palmer, many of "the best teams in Debian" consist mostly of non-maintainers working at this level.
  • Candidates must have an advocate to recommend them. Usually, the advocate is the candidate's sponsor, the Debian Maintainer who knows a candidate's work the best. Other advocates may be friends or acquaintances from the mailing lists or IRC channels.

Once an application is accepted, candidates are assigned to an Application Manager who will guide them through the process. Since candidates outnumber Application Managers by more than 10 to one, applications are often delayed until an Application Manager is free. Currently, for example, 39 are waiting to be assigned to an Application Manager, and another eight are waiting for the first contact by their Application Manager.

The Application Manager's first job is to test a candidate's knowledge of Debian Philosophy and Procedures (P&P). Helen Faulkner, one of the handful of current female candidates, who has been describing her progress for several months in a series of emails to the Debian Women list, explains that her Application Manager sent her a series of 30 questions that took her several nights to complete:

My P&P questions started with the necessary stuff about understanding the Debian Social Contract and the DFSG (Debian Free Software Guidelines). Then they moved on to some fairly difficult questions about licensing issues. Then there were a long string of questions about details of the normal Debian practises for things like handling bug reports, non-maintainer uploads, internationalisation of packages, and so on.

A couple of weeks after Faulkner submitted her answers, her Application Manager responded in detail, and had her redo questions she had answered incorrectly, or without important details, until she passed. According to Faulkner, "This is fairly normal. ... My impression is that the P&P stage is basically more boring than actually difficult."

Once candidates pass the Philosophy and Procedures stage, the Application Manager tests them on the tasks that they want to do. For instance, a developer who wanted to maintain packages might be asked to prepare a package that has no current maintainer. Similarly, a candidate interested in documentation might be asked to update an existing document or produce a new one, while a tester might be asked to repair a specific bug.

When candidates have completed all these steps, the Application Manager writes a report to the New Maintainer Committee, including samples of candidates' work and their answers to the Philosophy and Procedures questions, and a recommendation of whether to accept them. The Committee then votes on final acceptance of each candidate, and successful candidates are assigned an email account by the Debian Account Manager.

Once or twice in the last five years, candidates have failed because the Committee believed they would be disruptive to the project or because their work was inconsistent, but, according to Matthew Palmer, "The pass rate for people who stick with the process is very close to 100%."

This is very different from the past, when the process was less formal. Then, Martin Michlmayr notes, as many as two out of three failed. Michlmayr suggests that the most important change is the requirement for an advocate -- presumably because it prejudges and discourages casual applications. By contrast, considering that the process often takes six to 10 months and can be delayed by a lack of Application Managers or the push to finish a release, those who persist are generally highly motivated.

According to Matthew Palmer, many who are interested never manage to find an advocate so that they can begin the process at all. Most candidates who fail simply drop out. Some may choose to work on other distributions. Others abandon the process because they lack the necessary skills or find the tasks less interesting than they thought. Still others find that the demands of the role require more time or effort than they are able to give. A few have never officially withdrawn their applications and continue to be listed as candidates after a couple of years, although, as Michlmayr points out, they are unlikely to ever contribute anything.

Today, the process of becoming a Debian Developer is more formal, even bureaucratic, than ever before. Much of the process seems to have evolved to weed out casual applicants who would waste project members' time, or who would disappear after being accepted, leaving packages or other work unofficially orphaned. The definition of a Debian Developer has also expanded in recent years to include documentation writers and quality assurance testers, and not just package maintainers.

Still, those who oversee the process or are involved in it see room for further improvement. Many think that too much emphasis is placed on the Debian philosophy. Michlmayr, for instance, suggests that if candidates were required to contribute before applying, some applications could be streamlined.

Others worry about the time the process takes. To prove the point, Ian Murdock, the founder of Debian, whose first name forms the second half of the distribution's name, declined an offer to be accepted immediately as a Debian Developer. Instead, he began the process in May 2004. He is still waiting to advance to the Philosophy and Procedures stage.

Yet most criticisms center around the social aspects of becoming involved. Although many of the requirements mirror the culture of Debian, another common complaint is that the process needs to introduce candidates to the community better. Conversely, Palmer and several others suggest that the process could also test candidates' ability to work with others and to resolve conflicts -- skills that can be too seldom displayed on Debian's outspoken, frequently acrimonious mailing lists.

And, in recent months, the Debian Women group has noted that, given that more than 99 percent of Debian Developers are male, the process of finding a sponsor or an advocate can be especially difficult for women. Part of Debian Women's purpose is to encourage more women to participate in Debian, and the group's efforts at demystifying the process are generally credited with the recent small rise in female candidates.

These criticisms aside, the process seems to serve Debian reasonably well. If the process is sometimes overly rigid and slow, it does help to ensure that most new recruits live up to Debian's long-established reputation for dependability. Considering the thousands of people involved in Debian development, that is no small accomplishment.

And if the process also contributes to the elitism that some people see in Debian, perhaps that is understandable. After completing such a demanding process, candidates can be forgiven for a sense of accomplishment and pride -- they've earned these feelings many times over.