Tracking the progress of feature development is one key strength of well-run free software projects. Big projects like Open Office and Mozilla go to some lengths to help their community rally around features that are under development. For example, you can see a list of the things Open Office developers would like to add to their product.
Keeping a good list of features planned or dreamed about, with priorities, allows the community to organise itself more effectively. Launchpad includes a number of features designed to make it easy for any project to do the same, and we call this subsystem "Blueprint".
The goals of Blueprint are:
- To make it easy for any project to keep track of features that are in various stages of proposal, definition and implementation.
- To integrate feature planning with the broader project management provided by Launchpad, such as release management.
- To help organise sprints and meetings where these features and ideas can be discussed efficiently.
Specifications are "attached" either to a distribution, like Ubuntu, or to an upstream product, like Gnomebaker.
Anybody can register a specification for an upstream project, or for a distribution. You do not have to be a project administrator, nor do you need to be a current contributor to the project. This is to encourage people to join a project by participating in new feature planning and development.
Find the relevant project in Launchpad first, then click on the "Specifications" or "Features" tab. You will see a "New specification" menu item. Select that to register your specification. Usually it is best to actually create the specification in a wiki somewhere else. Different projects have different templates or approaches to specifications - some like them detailed, some prefer lightweight specs. Either way, register the spec in Launchpad so that you can track changes in its status there, and communicate your progress to everyone else in the project.
Subscribing to specifications
If there is a specification that you are interested in, you can subscribe to that specification. You will then be emailed (assuming you have a validated email address in Launchpad) whenever that specification changes status. In addition, if the wiki that the spec is being developed in is configured to notify Launchpad by email (see SpecWikiNotifications), those notifications will be sent on to you too. In this way it is possible to receive both updates of metadata changes, and content changes to the specification.
With EssentialSpecificationSubscribers you can indicate that your participation in the feature discussion is essential, which means that the meeting planner will try not to arrange meetings on the topic unless you can be present.
Launchpad knows about release management, and Blueprint can take advantage of this to help you plan features for a particular release.
As an upstream developer, you can tell Launchpad about a new major release (we call this a "series" since it usually means a series of releases, like 1.2.0, 1.2.1, 1.2.3 etc). You can specify a person or team that is responsible for approving or declining feature goals for that series - we call that person the "driver" of the series.
It is then possible for people to nominate their features for consideration as a goal for that series - and for the drivers to decide whether to accept or decline that feature goal. Launchpad will generate lists of the accepted feature goals and help you manage your progress in delivering the release.
If you are using milestones in your development process, then features can even be targeted to milstones, which allows you to get very finegrained reporting on your plans and progress.
Sprints and meetings
Launchpad can help you to organise sprints or meetings where you want to talk about a variety of topics or features. You can register the sprint, invite people to attend, and invite people to propose topics for discussion. Then Launchpad allows you to keep detailed track of the state of all of those topics, so that you can get the most from the time when you have everyone together.
In future, Launchpad will even help with the timetable generation for your meeting, so you can keep everyone fully occupied with the things they most want to discuss! Our goal is to make it easy to run an "unconference" where the agenda and the timetable are made up on the spot to get the most out of the collection of people who have arrived on the scene.
In future, the Launchpad feature tracker will support an XML-RPC interface so that you can interact with it from your own scripts and programs. It will also generate more sophisticated charts showing your progress over time, so you can visualise your release management and present that elegantly for your community.
We use Launchpad's feature planning heavily for Ubuntu. You can see examples of this here:
https://launchpad.net/distros/ubuntu/+specs (a list of all features proposed for future releases of Ubuntu)
https://launchpad.net/distros/ubuntu/dapper/+specs (a list of the features that were accepted as goals for Dapper, the release of Ubuntu that was made on June 1st, 2006)
For that reason, continued evolution and improvement of the tool is important to our own management and coordination.