LP_FeaturesSprints

Ubuntu Open Week - Planning features and sprints in Launchpad - - Fri, Oct 26, 2007

17:08 <+mrevell> Hello! My name is Matthew Revell and I work for Canonical as part of the Launchpad team.
17:08 <+mrevell> Welcome to this session, which is all about one of Launchpad's applications, Blueprint.
17:09 <+mrevell> I'm going to introduce you to Blueprint and tell you:
17:09 <+mrevell> * what it does
17:09 <+mrevell> * how it works
17:09 <+mrevell> * a little about how Ubuntu uses it.
17:09 <+mrevell> I'll also be pleased to take your questions at the end of the session.
17:09 <+mrevell> Before I continue, I want to let you know how you can get in touch with me and the Launchpad team.
17:10 <+mrevell> Most week days you can find me as mrevell on Freenode. I hang out in #launchpad.
17:10 <+mrevell> You can also email me - matthew.revell@canonical.com.
17:10 <+mrevell> You can get in touch with the Launchpad team by sending an email to feedback@launchpad.net
17:11 <+mrevell> Okay, so let's get going!
17:11 <+mrevell>  
17:11 <+mrevell> What is a blueprint?
17:11 <+mrevell> ---------------------
17:11 <+mrevell>  
17:11 <+mrevell> In the design of physical objects, a blueprint is a plan of action.
17:11 <+mrevell>  
17:11 <+mrevell> It takes the ideas of an individual or group of people and turns them into dimensions, angles, materials and so on.
17:11 <+mrevell>  
17:11 <+mrevell> A blueprint in Launchpad is similar: it helps individuals and groups of people to tell the world about an idea, a new feature or an entirely new project.
17:12 <+mrevell> The important difference between a traditional blueprint and the blueprints in Launchpad is that Launchpad's blueprints don't end with publication.
17:12 <+mrevell> Instead, a blueprint in Launchpad tracks the progress of an idea from conception to implementation.
17:13 <+mrevell> Sound complicated?
17:13 <+mrevell> Don't worry: it's not at all :)
17:13 <+mrevell> We've designed Blueprint - the Launchpad application - to be as simple as possible.
17:13 <+mrevell> If all you want is to write a few sentences describing your idea and then publish it, you can do that with Blueprint.
17:13 <+mrevell> If, however, you want to:
17:14 <+mrevell>  
17:14 <+mrevell> * track who is responsible for implementation and approval
17:14 <+mrevell> * link the blueprint to a branch of code that implements it
17:14 <+mrevell> * target your blueprint to a particular software release
17:14 <+mrevell> * track the dependencies required for your blueprint's implementation
17:14 <+mrevell> * and more....
17:14 <+mrevell>  
17:14 <+mrevell> ...then Launchpad Blueprint can help you with those too.
17:14 <+mrevell>  
17:14 <+mrevell> Blueprint doesn't force any particular project management methodology on you. Instead, it allows you to use however much or little you want.
17:14 <+mrevell>  
17:15 <+mrevell> Let's take a closer look
17:15 <+mrevell> ------------------------
17:15 <+mrevell>  
17:15 <+mrevell> Each Blueprint belongs to a particular project.
17:15 <+mrevell> That means you can see lists of all the ideas, proposals or suggestions that are "out there" for a given project.
17:15 <+mrevell> For example, Ubuntu has more than 1,000 such blueprints, in various states of completion or discussion:
17:15 <+mrevell> https://blueprints.launchpad.net/ubuntu
17:16 <+mrevell>  
17:16 <+mrevell> Each Blueprint has a priority, a "definition" status, and a "delivery" status.
17:16 <+mrevell>  
17:16 <+mrevell> Anybody can contribute Blueprints for any project - there is no way to prevent someone from posting their ideas.
17:16 <+mrevell>  
17:16 <+mrevell> 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.
17:16 <+mrevell> The "definition" status tells you whether or not the project has reached consensus on how the idea should be implemented.
17:16 <+mrevell>  
17:17 <+mrevell> In some projects there will be a person, or team of people, who will approve the plan.
17:17 <+mrevell> In others, plans are considered unnecessary or harmful, so this value is less important.
17:17 <+mrevell> In Ubuntu, they try to have a senior contributor review and approve any significant piece of work that is planned for any given release.
17:18 <+mrevell> Of course, lots happens without these plans, but it does give 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.
17:18 <+mrevell>  
17:18 <+mrevell> Finally, the "delivery" status is all about implementation and execution.
17:18 <+mrevell> It tells you whether the work has been done, or whether it is on track to be done.
17:18 <+mrevell> Each blueprint also has a:
17:18 <+mrevell>  
17:19 <+mrevell> * "Drafter" - the person who is responsible for setting out the idea
17:19 <+mrevell> * "Assignee" - the person who is going to implement the ideas set out in the blueprint
17:19 <+mrevell> * "Reviewer" - the person who'll check the work on the blueprint.
17:19 <+mrevell>  
17:19 <+mrevell> You can see these in the top right of the page, alongside the implementation status, priority and a definition.
17:20 <+mrevell> Where to put the details
17:20 <+mrevell> -------------------------
17:20 <+mrevell>  
17:20 <+mrevell> 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.
17:20 <+mrevell>  
17:20 <+mrevell> 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 easily collaborate.
17:20 <+mrevell>  
17:20 <+mrevell> Just having a list of proposals and ideas in one place is useful, even if, as in the case of Ubuntu, there are clearly many more ideas than developers!
17:20 <+mrevell>  
17:20 <+mrevell> It's convenient to be able to point new members of the community at a single place where those ideas are catalogued and to allow people to gravitate towards the pieces they are most interested in.
17:20 <+mrevell>  
17:21 <+mrevell> People can subscribe to Blueprints and get notifications when their status changes and even when the wiki document they are in is updated.
17:21 <+mrevell>  
17:21 <+mrevell> Newcomers can easily see which ideas are important to the project leaders, and which are not, so they can choose to focus their contributions on those pieces most likely to be accepted into the project.
17:21 <+mrevell>  
17:21 <+mrevell>  
17:21 <+mrevell> Linking blueprints
17:22 <+mrevell> ------------------
17:22 <+mrevell>  
17:22 <+mrevell> Launchpad allows you to link a blueprint and a bug, or a blueprint and a branch of code.
17:22 <+mrevell>  
17:22 <+mrevell> This allows people to see how pieces of work relate to one another.
17:22 <+mrevell>  
17:23 <+mrevell> It's very useful, for example, to be able to see the code that implements a blueprint evolving over time.
17:23 <+mrevell> It's also possible to link blueprints to one another, indicating rough dependencies.
17:23 <+mrevell> This lets you map out the order in which pieces of work should be implemented.
17:23 <+mrevell>  
17:23 <+mrevell> Let's take a look at an example of the dependency chart that Launchpad produces:
17:25 <+mrevell> https://blueprints.launchpad.net/ubuntu/+spec/printer-sharing
17:26 <+mrevell> This is a very simple example. This particular blueprint depends on one other. The current blueprint is shown in red. The other blueprint is in grey, which shows that it has been implemented.
17:26 <+mrevell>  
17:26 <+mrevell> Release management
17:27 <+mrevell> ---------------
17:27 <+mrevell>  
17:27 <+mrevell> The most useful aspect of Launchpad's blueprint tracker, however, is the ability to group  the blueprints that describe chunks of work that the project thinks are important to track for the next major series.
17:27 <+mrevell>  
17:27 <+mrevell> Here's the list for Gutsy:
17:27 <+mrevell> https://blueprints.launchpad.net/ubuntu/gutsy
17:27 <+mrevell>  
17:28 <+mrevell> These are blueprints that have been reviewed by the team
17:28 <+mrevell> and that they  agreed should be worked on during the Gutsy cycle.
17:28 <+mrevell> In general, about 80% of the planned feature goals have landed in each Ubuntu release.
17:29 <+mrevell> Ubuntu choose to ship on time, rather than necessarily waiting till every feature lands. However, different projects can adopt different release management goals.
17:29 <+mrevell> The important thing, of course, is that everyone can see where the project stands on any particular item.
17:30 <+mrevell> Sometimes you may want to group just the blueprints that are relevant for an interim release. For that, Launchpad has what we call milestones.
17:30 <+mrevell>  
17:30 <+mrevell> Milestones
17:30 <+mrevell> ------------
17:30 <+mrevell>  
17:31 <+mrevell> We've discussed projects and series, which are the major ways in which we keep track of the progress of a free software project in Launchpad.
17:31 <+mrevell>  
17:31 <+mrevell> Milestones are a very lightweight way to organise a group of bugs or blueprints.
17:31 <+mrevell> A milestone is a point in time, or a test release, for which you need to keep track of a few bugs or blueprints.
17:31 <+mrevell>  
17:31 <+mrevell> In Launchpad, you can easily create a milestone, and then link bugs or blueprints to that milestone as a way of saying "we think these items are worth keeping track of as we get closer to that date".
17:32 <+mrevell>  
17:32 <+mrevell> Here's an example milestone. It's the 1.1.11 milestone for the whole Launchpad project and is what we're working on now, due for release in November:
17:33 <+mrevell> https://launchpad.net/launchpad/+milestone/1.1.11
17:33 <+mrevell>  
17:33 <+mrevell> As you can see on that page, there are a number of blueprints targeted against the milestone, just as there were earlier when we look at Gutsy's blueprints.
17:34 <+mrevell> In the Launchpad team, we make a new release every four to five weeks. This means that we're making iterative improvements to Launchpad quit frequently. So, each release isn't a major release.
17:35 <+mrevell> Bug<--->Blueprint links
17:35 <+mrevell> -----------------------
17:35 <+mrevell>  
17:35 <+mrevell> Earlier, I menetioned that you can link bugs and blueprints.
17:35 <+mrevell> Let's take a look at the Bazaar project for an example.
17:37 <+mrevell> https://code.launchpad.net/bzr/
17:37 <+mrevell>  
17:37 <+mrevell> This is a list of all the branches of the Bazaar project that Launchpad knows about.
17:37 <+mrevell> Scroll down and you'll see three types of icon beside the branch names:
17:38 <+mrevell> * A small bug.
17:38 <+mrevell> * A warning triangle.
17:38 <+mrevell> * Some blue papers.
17:38 <+mrevell>  
17:38 <+mrevell> That last one is indicates that the branch is linked to a blueprint.
17:38 <+mrevell>  
17:38 <+mrevell> Sprints and meetings
17:38 <+mrevell> -------------------
17:38 <+mrevell>  
17:39 <+mrevell> Many free software projects use real-world meetings to thrash ideas or as development sprints.
17:40 <+mrevell> Launchpad helps you to organise such meetings and use a list of blueprints as the meeting's agenda.
17:40 <+mrevell> Ubuntu's six-monthly Ubuntu Developer Summits are an ideal example of such a meeting.
17:41 <+mrevell> Let's take a look at what's planned for next week's UDS in Cambridge, Massachusetts.
17:41 <+mrevell> https://launchpad.net/sprints/uds-boston-2007
17:41 <+mrevell>  
17:42 <+mrevell> Using the two panels in the left-hand sign of the page, you can see when the meeting is, who's organising it and who is attending.
17:42 <+mrevell> You can also sign yourself up as an attendee.
17:42 <+mrevell> In the central part of the page is a "full current agenda" link, which takes us to:
17:43 <+mrevell> https://launchpad.net/sprints/uds-boston-2007/+specs
17:43 <+mrevell> These are all the blueprints that are due for discussion at UDS Boston.
17:44 <+mrevell> Again, this is another example of Launchpad Blueprint offering a very simple solution to a common problem in planning a free software project.
17:44 <+mrevell>  
17:44 <+mrevell> That's all folks
17:44 <+mrevell> --------------
17:44 <+mrevell>  
17:44 <+mrevell> So
17:44 <+mrevell> I'll be very happy to take your questions now, if you have any.
17:44 <+mrevell> Please paste them in the #ubuntu-classroom-chat channel.
17:44 <+mrevell> Alternatively, please mail me - feedback@launchpad.net
17:45 <+mrevell> I'd also like to invite you to join us on the launchpad-users list:
17:45 <+mrevell> http://lists.ubuntu.com/mailman/listinfo/launchpad-users
17:45 <+mrevell> You can come along to our developer meetings in #launchpad at 14.00 UTC every Thursday.
17:45 <+mrevell> And if you want to find out more about what we've got planned for Launchpad, join the Launchpad Beta Testers team at:
17:46 <+mrevell> https://launchpad.net/~launchpad-beta-testers/+members
17:46 <+mrevell> No questions?
17:47 <+mrevell> Okay, well, thank you for joining me today. Goodnight!
17:47 < mzungu> mrevell, thanks
17:47 < samgee> thanks, matt
17:47 < brobostigon> thanks

MeetingLogs/openweekgutsy/LP_FeaturesSprints (last edited 2008-08-06 17:01:22 by localhost)