When Mark Shuttleworth talks, the free and open source software (FOSS) world listens.
As founder of Ubuntu and its commercial arm Canonical, he heads the most popular Linux distribution in the world. Even more importantly, he is an articulate and innovative thinker. For these reasons, he was a logical choice for the closing keynote at the first LinuxCon a couple of weeks ago, and his view of what free software needs have been widely reported.
However, what few people seem to have done is analyze his keynote for accuracy, or to ask what interests his vision represents.
I am not referring here to the sexism in Shuttleworth's speech, in particular the remark about "explaining to girls what we actually do." The implied exclusion in the remark is a legitimate concern -- which I share -- but the issue has already been dissected at length.
All I can add is that I am disappointed that Shuttleworth refused to apologize, but I feel that he partly redeems himself by the fact that Canonical CTO Matt Zimmerman can publicly disapprove of his comments without facing any retribution.
Instead, I would like to focus on the topic of Shuttleworth's keynote. For the most part, Shuttleworth repeated the ideas that he has articulated on his blog over the last few years, with some of the details updated. In order for free software to grow, Shuttleworth says, it requires improvement in three areas: Cadence, or the coordination of releases from major projects; Quality, in particular the coordination of rigorous testing and quality assurance, and Design or human usability.
Shuttleworth gives technical suggestions about how free software can improve in these areas, and emphasizes that improvements in these areas will attract both developers and users to free software. You can read more detailed summaries of the keynote by Carla Schroder and Brian Proffitt.
On the surface, Shuttleworth's suggestions are hard to dispute. However, as I analyze his keynote more closely, I wonder whether a couple of his suggestions may not be in the interests of free software, even though he clearly meant them that way. Still others seem to be more in the interests of particular sections of the community than those of free software as a whole.
Conditions of software development
Over a dozen years or so, I have worked with some fifty companies as a consultant on software projects. This experience has left me with a strong sense about what works and what doesn't -- and a couple of Shuttleworth's comments, while meant to improve free software development, seem likely to create as many problems than they solve.
One of Shuttleworth's arguments in favor of regular releases over a short period is that releases "energize" a project. He says that, in addition to exposing the software to far more users, a release is the time when documenters and translators begin to work.
In fact, technical writers will tell you that the time of the release is the very worst time to begin their work. Starting to document or translate with a release means that the work is under pressure to be completed as soon as possible. It also means that those doing the work may have a hard time finding developers to answer questions, because, their work being finished, they are taking time off.
Both quality and usability -- Shuttleworth's other concerns -- are generally better served when documenters and translators begin their work with the alpha release or sooner.
Similarly, Shuttleworth talks throughout the keynote as though attracting more people to a project is an unmitigated advantage. However, anyone who has worked on a software project can tell you that an increase in the size of the team does not automatically translate into more getting done.
In fact, more people can actually decrease a team's efficiency, especially in the short term, as others take time from their own responsibilities to bring the newcomers up to speed and the newcomers gradually find their place on the team. The insularity of smaller projects is not always just a matter of poor social skills -- often, it can be the most efficient way to work. If everyone on a team is experienced, then you need less communication and coordination is easier.
In both these cases, Shuttleworth seems to be viewing increased participation as a desirable end in itself. However, the situation is more complicated. When and how more people get involved can be even more important than the mere fact of their involvement.
Linux for whom?
Throughout his keynote, Shuttleworth talks about Linux as a whole. However, when you think for a moment, his views are those of a particular segment of the FOSS community -- naturally, the ones to which he, Ubuntu and Canonical belong.