Open Source Project Management

Allan Kelly : Open Source Project Management

The Structure, Organisation, Scheduling and Control of Open Source Projects

Open Source projects are often very large, in terms of their codebase, participation, significance and maturity. I am interested in how these projects organise themselves to provide a stable, reliable, high quality product in a context where the customary control measures utilised within a commercial organisation are completely absent.

From a commercial standpoint, OS projects ought to be an anarchic mess and many IT professionals reject OS due to this prejudice. It is common to find a 'no Open Source' rule stated and applied within commercial organisations, to the extent that proposals are rejected out of hand if they incorporate OS components. In my experience this is due to two factors - a perceived inability to apply Change Control measures to OS software, and a perceived lack of support for OS software.

The opposite position is taken by OS advocates - the only context in which successful, high-quality software can be created on a large scale is in an OS project. In a commercial context there are several factors pushing projects towards low-quality work including time-pressure and a lack of appreciation of the value of investment in automating processes. It is still near-universal in commercial organisations to "confuse effort with progress" (Brooks, 1976) and to refuse to support the implementation of tools. Instead, hands-on management is advocated. Of course we know that this leads directly to resentment, "them-and-us", no sense of ownership by the development community and ultimately wild costs, low quality and failure.

In an OS context we have no possibility of imposing management structures or of demanding that time is spent "digging" instead of planning - and yet these projects are models of productive, high-quality efficiency, with near-zero costs and extremely tight version control and testing. I believe there is a middle-ground where adoption of appropriate OS tools and methodologies can enable commercial organisations to free themselves from the endless "cat-herding" and last-minute quality crises, to provide easily-accesible, automated management tools which bridge the divide between development, project management and customers.

The merits of OS in principle have been argued by many people over recent years with varying degrees of success. Some in the IT community point to "The Cathedral and the Bazaar" as a key document in this debate, but my own opinion is that it is largely irrelevant. Of much greater significance is the organisation and productisation of individual OS projects. This is Project Management, but not as we know it - it is Open Source Project Management (OSPM).

Such is the success of projects such as Mozilla and Eclipse at presenting a corporate image, that many assume that they are in fact traditional organisations. However, with the exception of some of the biggest projects (eg Mozilla has an office), there is no project office you can go and visit , there are no paid staff on these projects, and there are no support contracts between the producers of the software and the users of the software. The question is - what is there then?

The stalwarts of OS are the GNU Foundation, and Richard Stallman in particular. For 20 years Stallman has developed the ideas and practice of Free Software, which he has defined very precisely as distinct from the general Open Source category of software. This comes down to arguments over licencing and the implications on users of the software. Whilst of vital importance, this is not the focus of this article. This article is about how things get done.

It will be argued that the licencing of a project fundamentally affects the organisation and participation in the project, and I accept that. However, here I am concentrating on the mechanics of OSPM.

I will examine a series of successful OS projects and document their Project Management practices. Through this there will emerge common themes and strong differences across projects which will enable me to categorise those projects and hopefully to draw conclusions about the requirements and implications of adopting any one OSPM technique.

Mailing Lists

Pretty much all communication within OS projects is through subscription mailing lists. These have been around for almost as long as email itself - they are so simple in concept. The standard mailing list management programs are themselves OS projects, the classic one being Majordomo. Here is a review of 4 commercial but free to use mailing list services .
Several mailing lists typically exist for any one OS project, each focussed on a different aspect of the project. Typically this is developers, users, new users, and announcements.
The lasting value of these lists is in searchable archives - the high profile Linux Kernel Mailing List (LKML) even has a dedicated summary web site through which provides weekly news pages for the major LKML topics.

Types of OS projects

The nature of an OS project can be largely determined by it's scope. As I research this subject, it is clear that it is of fundamental importance to understand the Type of project under discussion. In the absence of a categorisation scheme, I will use the following. Note that the terms "association", "aggregate" and "composite" are here used as in UML - this is well described on JGuru.

Atomic Project
An Atomic Project is one with a single product. An example is the Linux Kernel. Another is the Vim project.
Aggregate Project
An Aggregate Project is an association of seperate projects with a common theme, but with no necessary technical coupling. An example is the Apache Project.
Composite Project
A Composite Project is an association of seperate projects with a common technical coupling. An example is the Eclipse Project. Another is the KDE Project.
Meta Project or Political Project
This is a project enabling project - Meta Project - which does not itself produce anything of a functional nature.

Initial Projects

These are the projects I will initially examine. They are different in their intent, audience and age. Some are enormous and so I will no doubt experience varying degrees of success in characterising each project.


Also of interest: marketing, funding/sponsorship.

Commercial Companies Supporting Open Source projects

The motives of these commercial companies are varied, and I will try to glean as much as I can. For the moment, this is just a list.

  • Novell
  • IBM

Marketing

Commercial tools used by OS projects.

  • JIRA - used by codehaus, "JIRA is a J2EE-based, issue tracking and project management application developed to make this process easier for your team." Maven uses this as an issue tracker, and the Apache home site is less dynamic.
  • Linux Kernel uses BitKeeper
    20050531: Linux Kernel has changed to Git, a system under development by Linux Torvalds himself! I'm searching for some definitive stuff on this major event, and for the moment there's this kernel traffic report. I'll add more as I find them... OK, I found one: git(7) Manual Page
  • ... and it's controversial!
    Check this out (by Larry McVoy):
    "The only reason I end up railing against RMS is he is really trying to hijack the Linux effort for his own purposes... The amount of source code that the Free Software Foundation has funded is almost zero. The amount of source code that RMS himself has written is also very small. He did write the first version of GCC and did a lot of work on that, but by far the vast majority of the code in GCC was done by Cygnus as contracting work to make other chips go. I am personal friends with all three founders of Cygnus, so I know what I am talking about."
    Here is an article just about the time BK was adopted.

Git Development

As described in various articles and mailing list digests, BitKeeper is no longer available to the Linux Kernel project as a freebie. So, Linus has said that he will go back to manually processing the patches sent to him by email. Well, this didn't last long! Linus almost immediately started work on Git, his "stupid (but extremely fast) directory content manager" - ie a merge tool.

Since Git is deliberately restricted, others have jumped in with more able wrappers. In particular we have Cogito for human interaction with the Git system. Git Traffic has the Cogito 0.8 announcement, which contains a good summary.

Interesting articles

   
Last Updated
Mon Jun 28 22:00:05 2010