Chapter 4. Agile Planning and Estimation: Generally Accepted Scrum Practices Show
Agile teams use straightforward planning tools to get a handle on their projects. Scrum teams plan their projects together so that everybody on the team commits to each sprint’s goal. To maintain the team’s collective commitment, planning, estimating, and tracking need to be simple and easy for the whole team to do as a group. From user stories and planning poker to velocity and burndown charts, Scrum teams always know what they’ve done and what’s left to do. Get ready to learn the tools that keep Scrum teams informed and in control of what they build! Meanwhile, back at the ranch...The demo of CGW5 was the most exciting thing at the Wisconsin Game conference. But is the team a victim of their own success? Now it seems like everyone in the gaming world expects it to be the most innovative and fun game of the year. That’s a lot of pressure on the team! So... what’s next?The team had enough backlogged requests to build out a crowd-pleasing demo at the beginning of the project. But now they’ve got to make sure that the full-length game will make gamers as happy as the demo did. Introducing GASPs!When Scrum teams start working on a sprint, they use tools that include the whole team in setting goals and tracking them. While these practices are not part of the core Scrum rules, they’ve been used by many Scrum teams to plan work and keep everybody on the same page. That’s where the Generally Accepted Scrum Practices —or “GASPs”—come in. They’re not technically part of the Scrum framework, but they’re so common among Scrum teams that they’re found on almost every Scrum project. 1 User stories and story points User stories help you to capture what your users need from the software so you can build it out in chunks that they can use. Story Points are a way of saying how much effort will be needed to build a user story. 3 Task boards Task boards keep everybody in the team on the same page about the current sprint’s progress. It’s a quick, visual way to see what everybody is doing. 2 Planning poker Teams use planning poker to get everybody thinking about how big each story is and how they’ll build it. Note The burndown chart is a great tool for helping you to figure out how much work is left to do, and get a pretty good sense of whether or not you’ll finish all of the work planned for the Sprint. 4 Burndown chart Everyone on the team can see much work they’ve done and how much is left to do using burndown charts. No more 300-page specs... please?The team used to create detailed specifications, because writing up all of the requirements for the game seemed like the most efficient way to communicate everything the users needed. But a lot gets lost in translation when one person tries to write down everything and communicate it to a development team. Is there a better, more agile way to write down requirements? Alex: I was thinking that too. But I need more than just a report of requested features to do that, don’t I? Rick: Huh, I guess you’re right. It looks like we need to figure out who our users are first, and then divide the list of features into a list of actions and benefits. Do you feel like you have enough information to do that? Alex: Actually, when I think about it, I do have all of that. There are three kinds of gamers we target with the CGW series: novices, casual gamers, and experts. Rick: OK, let’s use those roles to write up our stories. Alex: Yeah, figuring out the actions the users will take is pretty easy. That’s usually the meat of the feature request. The benefit they receive is easy to understand too. Actually, writing our requirements this way won’t be very hard. Rick: Great! Let’s just get them in the backlog and get started on our first sprint. Alex: Not so fast, Rick. We still need to figure out how to estimate this stuff. And we don’t even know what “this stuff” really is! Seriously... what, exactly, are we going to build? User stories help teams understand what users needSoftware helps people do things. When a user asks a team to build a feature, it’s because they need to be able to do something in the future with it that they can’t do today. The most efficient way to make sure the team builds the right thing is to keep those needs in mind throughout the development process. A user story is a very short description of a specific thing that users need. A lot of teams write them on index cards or sticky notes. By organizing all of their work around user stories, Scrum teams make sure they keep user needs front and center in their planning and prioritization process. That way, they stay focused on building what their users need and there are no surprises when the team demonstrates the stories at the end of the sprint. User Stories User stories describe how the user will use the software in just a few sentences. Many teams write user stories on note cards following a fill-in-the-blank format: As a <type of user>, I want to <specific action I’m taking> so that <what I want to happen as a result>. Because stories are short and modular, they’re a good reminder for the team to constantly confirm that they’re building the right features. You can think of each story card as a symbol for a conversation that the team is having with users to make sure that they’re building features that are useful to them. Story points let the team focus on the relative size of each storyThe goal of planning isn’t to predict the order features will be done in or their exact completion dates. Instead, the team assigns a point value to each story based on how big it is. That’s why most Scrum teams plan their projects using story points, which let them compare stories with each other. By focusing on the relative size of features rather than the exact amount of time it will take to develop them, Scrum teams keep the team engaged in planning together and allow for uncertainty in their plans. How story points workStory points are simple: the team just picks a number of points that represents the amount of work required for each story, and assigns that number to every story in the sprint backlog. Instead of trying to predict exactly how long it will take to build a feature, the team assigns a point value to each story based on its size relative to other features they’ve built before. At first, the estimates vary a lot from story to story. But after a while, the team gets used to the scale they’re using to estimate and it gets easier to figure out how big each story is. One way that teams start using story points is to divide stories up into T-shirt sizes, and assign a point value to each size. For example, they might decide to use 1 point for extra small features, 2 points for small features, 3 points for medium features, 4 for large, and 5 for extra large. Once they decide on a scale, they just need to decide which category each story fits into. Some teams use the Fibonacci sequence (1, 2, 3, 5, 8, 13, 21...) for story point scales because they think it provides a more realistic weight for bigger features. As long as your team uses a scale consistently, it doesn’t matter which one they use. Whatever doesn’t get done in a sprint is moved from that sprint to the next and the total number of story points that are completed in each sprint is tracked as the project’s velocity. If a team finishes 15 stories totalling 55 story points in a sprint, they track the 55 points as the sprint velocity and that gives them a general idea of roughly how much they can do in the next sprint. Over time the team gets better and better at assigning story points and more and more consistent in the number of points they deliver in each sprint. That way the team gets a feel for how much they can do in a sprint and takes control of planning together.
The whole team estimates togetherOnce the team has a prioritized list of user stories to get started with, they need to figure out how much effort it will take to build them. They usually estimate the story points needed to build each story out as part of the Scrum planning meeting at the start of each sprint. Most often the team knows which stories are the highest priority by looking at the backlog, so they try to commit to as many high priority stories as they can in each sprint. One way the team does this is planning poker.
Planning poker is very effective, in part because it’s collaborative. When the team estimates effort for an item, each team member estimates the whole effort, not just his or her part of it. So even if you’re not doing the work, you’re estimating it... and that helps everyone on the team get a better understanding of the whole project. No more detailed project plansIt feels like you’ve got a really good handle on your project if you create a plan to map out all of the dependencies and figure out who will be doing what from the time you start until the end. Traditional project plans make everybody feel like the there’s a guarantee of success because everything has been thought through. More often than not, the information you have at the beginning of the project isn’t enough to make a completely accurate detailed plan. But some of the decisions traditional project plans ask you to make in the beginning turn out to be different than the ones you’d make if you were in the middle of the project. Scrum teams try to make decisions at the last responsible moment and allow for change, because they realize that detailed project plans can lead a team to focus on following the plan rather than responding to the changes that come up naturally. That’s why Scrum teams work on prioritizing the backlog and doing the highest priority work first. That way, they’re always working on the most important tasks, even when things change. Rick: Wait, no! That’s definitely not right. How do I know when we’ll be done? Or who’s doing what? Brian: You’re right. Assigning a story point value to a user story is a lot different than telling you how many days it will take to do the work. Rick: So I’m just supposed to tell upper management that we’ll do as much work as we can over the next two-week sprint? Brian: Well, as long as we’re all working on the highest priority features, we’re doing the most valuable work we can be doing. I think it’s a combination of us doing high priority work and demoing what we’ve done in every sprint review that keeps everyone in the loop. Rick: OK. But without a project plan, how do I even know if everybody is busy working on the right tasks? Taskboards keep the team informedOnce your team has planned the sprint, they need to get started building it. But Scrum teams generally don’t sit down and figure out who will do each task at the beginning of each sprint. They try to make it easy for team members to make decisions at the last responsible moment by giving the whole team constantly updated information about how the sprint is progressing. Most teams start by marking a whiteboard with three columns: To Do, In Progress, and Done. As a team member starts working on a story, he or she will move it from the To Do column to the In Progress column and to the Done column when it’s complete. Note This task board has just the stories, and a lot of agile teams do this. But many teams add cards or stickies to their board for the tasks that the stories are decomposed into, grouped under each story card. When the first task moves into the In Progress column, the story goes with it. It stays there until the last task is Done.
there are no Dumb QuestionsQ: So what’s the difference between a user story and requirement? Is it just that it’s written on an index card? A: No. In fact a lot of teams don’t write their user stories on cards at all. Often, they’re created as tickets in an issue tracking system. They can be rows in a spreadsheet, or bullets in a document. The biggest difference between user stories and traditional software requirements is that user stories don’t attempt to nail down the specific details about the feature that’s being described. The goal when you’re writing a user story is to capture just enough information that everybody can remember who’s going to use the feature, what it is, and why users want it. The story itself is a way to make sure that the team talks about the feature and understands it well enough to do the work. Sometimes teams will need to write more documentation once they’ve confirmed the story with the users. Sometimes just having the conversation is enough, and the team can build the feature without any more documentation. However they do it, the most important thing is for them to understand what the user needs, and his or her perspective. Q: How do I know how many story points to assign to a story? A: When a team is starting to use story points for the first time, the first thing they typically do is get together and decide what type of work is worth one story point—usually a simple task that everyone on the team can understand. (For example, a team working on a web application might decide that one story point is equivalent to the effort it takes to add a button with some simple, specific functionality to a web page.) Depending on the kind of work they usually do, they’ll choose a scale that makes sense to the team. But once they decide the value of one point, it helps the team understand the rest of the possible point ranges. Some teams use a practice called T-shirt sizing to assign all of the stories they’re estimating into small, medium, or large categories and assign points that way (1 point for small, 3 points for medium, 5 points for large). Other teams use broader scales (XS, S, M, L, and XL) with corresponding point values. Other teams assign values using the Fibonacci sequence (1, 2, 3, 5, 8, 13, 21...). As long as the team is consistent in how they assign points to stories, it doesn’t matter which approach they use. Q: What’s the point of planning poker? Can’t developers just estimate their work on their own? A: Like most of the other GASPs, planning poker focuses on involving the whole team in planning and tracking progress on your project. Planning poker is all about getting the team to discuss their estimates and agree on the right approach for development. By being transparent about estimates and approach, the team can help each other avoid mistakes and think through the most efficient method for developing each feature together. Planning poker helps teams make their estimation reasoning transparent. When the team decides on the approach and the estimate together, they have a much better chance of catching flaws in their approach earlier and they have a better handle on the work that needs to be done. Q: What happens if you get the estimate wrong? A: That happens—and it’s OK. You might end up thinking that a feature is worth 3 story points at the beginning of the sprint but realize by the end of it that it should’ve been a 5. But since story points are used to measure your overall velocity over time, you’ll find that the whole team gets better and better at figuring out which features are which as they work with their scale. What’s great about planning poker and story points is that they don’t expect you to be able to predict the future. Once you assign story points to your sprint backlog, you build your sprint backlog and then track your velocity numbers over time. If you have more story points in the backlog than you can do in the sprint, they go back to the product backlog so they can be reprioritized. As the team estimates and keeps track of what they’re delivering, they get better and better at it. In the beginning, you’ll see that the number of story points your team completes per sprint varies a lot. But as the team gets more and more comfortable working together, the number of story points they can accomplish in a sprint becomes more and more predictable. Rather than focusing on getting each estimate right, GASPs help your team to get a handle on how much work you can actually do. That way you can take on the right amount in each sprint and keep your team working as efficiently as possible.
That’s true. Stakeholders who are used to traditional status reports and project plans will need to adjust to these practices. Traditional project management methods create a plan for delivery up front and then track delivery to that plan. Getting everybody in your organization to give up that feeling that they know exactly how a project will be developed from the very beginning can be a major challenge for agile teams. Instead of planning each detail up front and holding the team to that plan, Scrum teams promise transparency, the ability to change, and a team focus on building the best product possible with the time and resources available. By building incrementally and delivering frequently, they often have much happier stakeholders once they get accustomed to working differently. Question Clinic: The red herringRick: It feels like we’ve almost got it down. Alex keeps the product backlog prioritized. At the start of each sprint we go through the highest priority stories, play planning poker, and assign them story point values. Then we add them into the sprint backlog and get started. Brian: That all works really well. The team likes getting a chance to talk through the work before we do it. It helps everybody stay on the same page about what needs to get done in a sprint, too. Rick: It does seem like it’s working, but then we get to the end of each sprint and we’ve always got stories that were bigger than we thought they were. There’s always stuff in the sprint backlog that needs to get carried over the next sprint. That’s making Alex nervous and making our sprint reviews with the users more tense. Brian: We need to know whether or not we’re on track during the sprint, so we can make adjustments if we need to. We shouldn’t commit to stories at the beginning of the sprint if we don’t think we can get them done. Rick: I think it’s time for us to start tracking our progress more closely. So... um, how exactly do we do that with Scrum? Burndown charts help the team see how much work is leftOnce a team has assigned a story point value to all of the user stories in the sprint backlog, they can use burndown charts to get a handle on how the project is progressing. A burndown chart is a simple line chart that shows how many story points are completed each day during the sprint. The burndown chart gives everybody a clear sense of how much work is left to be done at any time. Using a burndown chart, it’s clear to everyone on the team how close they are to achieving their sprint goals. Burndown charts and velocity help the whole team stay in control of the sprint. Velocity tells you how much your team can do in a sprintAt the end of each sprint, you can count the total number of story points that have been accepted by the Product Owner. The number of points per sprint is called the velocity, and it’s a great way to gauge how consistently the team is delivering work. Many teams plot their velocity per sprint as a bar chart so they can see how they did across multiple sprints. Since each team’s scale for estimating story points is different, you can’t use velocity to compare teams to one another. But you can use it to help figure out how much work your team should commit to based on their past performance. Sprint velocity This is a bar chart of the total number of story points completed in each of four sprints. If the team is using the same scale for estimation in each sprint, you can use this number to compare how much work has been done from one sprint to the next. To create this chart, the team just adds up the number of story points in the Done column of the task board at the end of each sprint. Sprint velocity with committed points This is a bar chart of the total number of story points the team put into the sprint backlog in gray and the number they actually completed in black. To create this chart, the team just adds up the number of story points in the sprint backlog after the planning session and marks that as the committed number. At the end of the sprint they track the velocity number by adding up all of the story points in the Done column of the taskboard. Burn-ups keep your progress and your scope separate from each otherAnother way to track your progress during a sprint is to use a burn-up chart. Instead of subtracting the number you’ve completed from the number you committed to, burn-ups track a cumulative total throughout the sprint and show the total committed scope on a separate line. When stories are added or deleted from the scope it’s obvious by looking at the scope line. When stories are put into the “Done” column on the task board, that’s easy to see too, by looking at the total number of points burned up in the sprint. Because the scope is tracked on a different line from the number of points accomplished, it’s clearer when the scope is changing. How do we know what to build?The Product Owner’s role on a sprint team is to keep everybody working on the most important thing in every sprint. They’re in charge of the order of stories in the sprint backlog and the product backlog. When the team has questions about a user story, the Product Owner is the one who tracks down the answers. Many teams set a time near the end of each sprint to make sure that the backlog is in order before the team starts to plan the next sprint. That meeting is called the product backlog refinement meeting. Product backlog refinement is all about adding detail and estimates to each backlog item, and revising the order. Teams usually rely on the estimation that they do during Sprint Planning, but should feel comfortable re-estimating Product Backlog items any time. This is a collaborative effort between the Product Owner and the Development Team—and it’s focused entirely on the Product Backlog (the Development Team is solely responsible for the ordering of the Sprint Backlog). Note A lot of teams block out time 2 or 3 days before the end of the sprint to do backlog refinement. They use the time to come up with questions that need to be answered before the planning session, and to double-check the priority order of the stories. Once the backlog refinement meeting is over, the Product Owner has a couple of days before the start of the next sprint to follow up on any open questions and make sure that the priorities make sense to business stakeholders as well. Some teams refer to product backlog refinement as PBR. In general, teams typically spend less than 10% of their time doing this. Story maps help you prioritize your backlogOne way to visualize the backlog is to lay it out in a story map. Story maps start by identifying the most core features of your product as its backbone. Then that functionality is broken up into the backbone’s most important user stories. Those are called the walking skeleton. Your first sprints should be focused on delivering as much of the walking skeleton as possible. After that, you can plan your releases to include features in their prioritized order on the map. Note Remember, these practices are not required by Scrum, but are generally accepted! Story maps give teams a way to visualize the release plan Personas help you get to know your usersA persona is a profile of a made-up user that includes personal facts and often a photo, which Scrum teams use to help them understand their users and stakeholders better. Putting a face to each user role and writing down what motivates them will help you make the right choices when you’re thinking about how and what to develop. Personas make your user stories more personal. Once the Ranch Hand Games team created them, they started thinking about how each user would react to the features they were building. there are no Dumb QuestionsQ: So how do I use points to make sure I’m on track for the whole project? Do I estimate the whole backlog? A: Some teams do. Some teams estimate the entire backlog to come up with a release burndown chart where they track how far they’ve come in burning down all of the features initially put into the product backlog. This is how some teams predict their overall release dates for major projects. But that only works if you’re relatively sure that everything that’s in the Product Backlog actually needs to be delivered as part of your project. In many cases, there are features in a product’s backlog that are so low priority that they will probably never be built. When that’s true, it doesn’t really make sense to estimate everything in the product backlog and use it to gauge a release date. Instead, many teams focus on building the highest priority functionality possible in every release and releasing software frequently. That way the most important features are always available as soon as possible. Q: How do I know how many stories to put into a sprint? A: When your team sits down to plan a sprint, they always use the Sprint Goal as the starting point to understand the priority of each feature in the Sprint Backlog. That should be enough for everyone to have a good idea of which features are most important. This is the idea behind commitment-driven planning (created by Mike Cohn, one of the most influential thinkers in Agile planning): that you deliver something tangible and valuable at the end of each sprint, and that you make trade-offs during the sprint to achieve that. The other option teams have is velocity-driven planning. This means starting with the team’s average velocity, and adding the top stories from the backlog until they reach the average velocity. Cohn prefers commitment-driven planning because it relies on the team members’ judgement of what’s necessary to build a valuable product. Q: Are story maps and task boards the same thing? A: No. Both of them can use whiteboards and story cards to show what’s going on in your project, but they’re displaying very different information. You can think of the taskboard as an up-to-date look at the sprint backlog. Checking it will always tell you what’s going on with each story in the current sprint. The story map gives you a similar view of the current plan for all of the stories in the product backlog. The story map helps everyone on your team have the same vision of where the product is going. Story maps give teams a way to visualize the release plan and understand how stories fit together. The news could be better...Now that the team has simple metrics to track their performance, it’s easier for them to see when things don’t go as planned. When they take a look across a number of sprints, they can tell that they aren’t as predictable as they’d hoped they would be. Retrospectives help your team improve the way they workAt the end of each sprint, the team reflects over the experience they just had and works together to fix any issues that came up. Retrospectives help your team stay aware of how things are going and stay focused on making things better with each sprint. As long as the team is learning from their experience, they’ll get better and better at working together as your project progresses. In Agile Retrospectives: Making Good Teams Great, Esther Derby and Diana Larsen lay out a simple outline for a retrospective meeting.
Exam QuestionsNote These practice exam questions will help you review the material in this chapter. You should still try answering them even if you’re not using this book to prepare for the PMI-ACP certification. It’s a great way to figure out what you do and don’t know, which helps get the material into your brain more quickly.
Exam AnswersNote Here are the answers to this chapter’s practice exam questions. How many did you get right? If you got one wrong, that’s OK—it’s worth taking the time to flip back and re-read the relevant part of the chapter so that you understand what’s going on.
Which of the following is an agile way of work allocation in a team?Answer: option (c) team members collectively create plans and take decisions. Team members execute tasks.
Which of the following is an agile way of working course hero?Option C is correct because as per the key points of Agile Project Management, there is one point that says : Agile Project Management refers to build projects with motivated individuals who support and trust one another to get the job done.
Which of the following is most practical and agile approach for achieving work coordination among a distributed team?A hybrid approach with local and remote team members is the most practical and agile approach for work coordination among a distributed team.
|