## page was renamed from Blueprint/Draft ~-[[FrontPage|Launchpad Help]] > Blueprint -~ ||<>|| = Overview = Blueprint is a lightweight way to manage releases of your software and to track the progress of features and ideas, from initial concept to implementation. Using Blueprint, you can encourage contributions from right across your project's community, while targeting the best ideas to future [[Projects/SeriesMilestonesReleases|releases]]. With very little administrative overhead, Blueprint helps you to create a roadmap for your project and shepherd individual features through to release. To enable Blueprint for your project, follow the ```Change details``` link on your project overview page and select the ```This project uses Blueprint``` option. = What is a blueprint? = A blueprint is a simple specification. It describes an idea - such as a feature or process - and tracks enough metadata to show its implementation status and who's involved. Let's take a look at what information makes up a blueprint: * '''Title and summary:''' some ideas are simple enough to express fully in the summary. * '''Work items:''' the steps necessary to complete the work of the blueprint, along with a status for each step * '''Link to further information:''' this can be any URL and is usually a wiki page where the idea or feature is fully explored. Launchpad doesn't provide a wiki facility. * '''People:''' who's working on this blueprint? You can optionally track the person drafting the blueprint, the assignee and the reviewer. * '''Drafting status:''' how well has this been discussed? Is it still just an idea or is it ready to code? * '''Implementation status'''. * '''Related bugs:''' link to any bug reports tracked in Launchpad that will be fixed or otherwise affected by this feature. * '''Code branches:''' while you're working on the implementation, you can upload/register branches your code branches in Launchpad and link to them from the blueprint. * '''Subscribers:''' people can [[#subscriptions|subscribe]] to receive email updates when the blueprint changes. * '''Dependencies:''' which other blueprints must be implemented before this one? Launchpad Blueprint leaves you to manage your project in the way that you want. It imposes no project management structure but instead makes it easy for you, and your project's community, to suggest, develop and implement ideas and features. = People: roles and responsibilities = We saw above that there are certain roles associated with each blueprint. Anyone can take any of these roles and anyone can set who is in any of those roles for a particular blueprint. That makes it very easy for members of your community to suggest new features and track their progress for everyone else to see, without requiring special permission. However, to allow projects to plan future releases, Launchpad restricts who can prioritise and target blueprints and bugs. As you'd expect, the project-group and project owner have these permissions but Launchpad also allows owners to grant them to other individuals and teams. They take role that, in effect, is a release manager and that Launchpad calls the "driver". == Drivers == Drivers come in three flavours: * project group * project/distribution * project/distribution series. Each driver's permission to target and prioritise trickles down the hierarchy, so, for example, project-group drivers also have driver permissions for each project within the group and each series in each of those projects. As a project owner, you can set driver the driver of your project by * Navigating to the Overview page of your project * Clicking on Change Details link toward the upper right * Clicking the white on black people link toward the top center * Making change * Clicking Save Changes = Targeting work = Launchpad Blueprint helps you to plan future release with two tools: * '''milestones:''' points in time, such as a future release or development sprint * '''series goals:''' a statement of intention to work on the blueprint for a particular series. Although only drivers can target blueprints to milestones and set them as series goals, anyone can propose a blueprint as a series goal. As a driver or owner, you can review proposed goals by following the ```Set goals``` link on your project's Blueprint overview page. == Your project roadmap == As we saw earlier, you can tell Launchpad which other blueprints must be implemented before the blueprint you're working on. Launchpad uses this information to recommend the order in which you might implement your project's blueprints. <> = Subscribing to blueprints = By following the ```Subscribe yourself``` link on a blueprint page, you can ask Launchpad to send you email notification of any changes to the blueprint. In most cases, you'll receive notification only of changes made to the blueprint itself in Launchpad and not to any further information, such as in an external wiki. However, if the wiki software supports email change notifications, Launchpad can even notify you of changes to the wiki page. If you're a blueprint owner and want Launchpad to know about updates to the related wiki page, ask the wiki admin how to send email notifications. Notifications should go to ```notifications@specs.launchpad.net```. <> = Work items = As blueprints usually represent a larger chunk of work, it can be useful to break them down into smaller steps. You can do this in the ''Work items'' text box and can keep track of the status of each of these smaller items. Here's an example of how a set of work items might look: {{{ Design the user interaction: DONE Visual design: INPROGRESS Test the UI: TODO Decide on an API format: POSTPONED Bootstrap the dev environment: TODO Set up Jenkins CI: TODO }}} As you can see, each work item sits on its own line and you indicate its status after a colon. == Work item statuses == You can give each work item one of four statuses: * TODO * INPROGRESS * POSTPONED * DONE = Sprints = Many free software projects find that face to face meetings are a useful opportunity to make plans. They're also usually a great way to get to know your fellow project members. Launchpad helps you plan development sprints by: * allowing you to [[https://launchpad.net/sprints/+new|register]] and publicise the meeting * track who's attending and allow people to register their intention to attend * mark specific blueprints for discussion at a meeting, thereby creating an agenda. As a meeting organiser, you can download a file of all the attendees. When subscribing to a blueprint, individuals can request that they're listed as an attendee of any meeting at which that blueprint is discussed by selecting the ```Participation essential``` option. Go see the [[https://blueprints.launchpad.net/sprints/+all|current list of all sprints]] tracked in Launchpad. = Next step = Launchpad isn't just there for the planning, development, translation and bug fixing: it also helps you get your software to its users. Through your [[Packaging/PPA|personal package archives]], Launchpad will build and host || ~-[[Answers/OfferingHelp|< Offering help]] -~ || ~- [[Packaging/PPA|Personal package archives >]] -~ ||