FeatureHighlights/BlueprintReleasePlanning

Not logged in - Log In / Register

Revision 1 as of 2007-03-26 13:04:11

Clear message

Blueprints: Lightweight Specifications

Planning isn't quite the least-favorite thing for most free software developers - but it's more or less in the same region as dealing with spam. The free software process is highly agile, with release management policies that span the full range from "time based" (set the date and forget the features) to "when it's done" (set the features and forget the date). Launchpad doesn't aim to change the psychology of projects by imposing any planning, but it does at least help a project to communicate to itself, and to other projects, where things stand.

The idea is simply to have a placeholder for each "chunk of work", or idea for implementation, or documentation that should be written. We call that placeholder a Blueprint. It can be as little as a single sentence, or a fully-fledged specification with data model and user interface mockups. The level of detail required is entirely a matter for the project to decide.

Each of these Blueprints belongs to a particular project. That means you can see lists of all the ideas or proposals or suggestions that are "out there" for a given project. For example, Ubuntu has more than 1,000 such blueprints, in various states of completion or discussion:

At the time of writing, the most "important" of these blueprints were:

attachment:ubuntublueprints.png

You can see, for each blueprint, a priority, a "definition" status, and a "delivery" status.

The priority is set by project leaders. Anybody can contribute blueprints for any project - there is no way to prevent someone from posting their ideas. However, the project leaders can set the priority - which means the extent to which they endorse the idea, or think it is important to implement soon.

The "definition" status tells you whether or not the project has reached consensus on how the idea should be implemented. In some projects there will be a person, or team of people, who will approve the plan. In others, plans are considered unnecessary or harmful, so this value is less important. In Ubuntu, we try to have a senior contributor review and approve any significant piece of work that is planned for any given release. Of course, lots happens without these plans, but it does give us some certainty that the various plans gel well, and that people have thought about the most important issues before they commit to getting something done in a particular release.

Finally, the "delivery" status is all about implementation and execution. It tells you whether the work has been done, or whether it is on track to be done.

Launchpad itself only contains a summary of the blueprint - usually just the introductory paragraph - and then a URL to the location of the real document. In some cases the single paragraph (or sentence) is enough, but it's more typical to keep the full document in a wiki, where members of the community can collaborate on it easily.