Chapter 3
IN THIS CHAPTER
Creating your actionable product roadmap
Turning your project into actionable-size chunks
Managing your master to-do list
Following common practices to expand the backlog
William of Ockham, a fourteenth-century logician and Franciscan friar, was quoted as saying, “Entities should not be multiplied unnecessarily.” In simpler, modern-day terms, this statement is known as Occam’s Razor. (When you have two competing theories that make the same predictions, the simpler one is better.)
In other words, Keep It Simple, Smarty. You can apply this mantra again and again when managing your project with scrum. If something doesn’t feel right, it probably isn’t.
In this chapter, you see that keeping things simple applies to a technique that we use to enhance scrum projects — called the product roadmap — as well as to decompose your product’s features into the smallest requirements possible.
Throughout this book, we point out common practices that scrum trainers and coaches use successfully. Although they’re optional, we recommend that you give them a try. They might make your project transition and completion more successful.
In the seven roadmap to value stages we outline in Chapter 1, you begin with the end in mind by creating your vision statement (a common agile practice that works well). The next step is creating a map to help you achieve that vision (see Figure 3-1).
FIGURE 3-1: The product roadmap is Stage 2 in the roadmap to value.
Although neither the vision statement nor the product roadmap is a formal aspect of scrum, both elements are common within the agile industry.
Creating a product roadmap is a common-sense way to set off on the journey and align an entire group. If you were to go on a voyage with a crew and passengers, you’d want to know your destination and most likely route before you leave the safety of the harbor. The same holds true with almost any project. Following are the general steps in creating a roadmap:
The product roadmap can change, but it gives you something tangible to start with, thereby increasing efficiency. By socializing the roadmap as an artifact of planning or replanning, you can make sure that influencers and stakeholders understand the direction and path. Adjustments to the plan are less costly, and a shared vision contributes to team unification.
The product roadmap is a holistic, high-level view of the features necessary to achieve the product goal that you outlined in your vision statement. Natural project affinities are established (“If we do this, we should logically do that”), and gaps in features are made readily visible (“Hey, where is …?”).
The product roadmap is the initial product backlog (your master to-do list), and as the likelihood of product backlog items being developed increases, items are increasingly broken down (progressive elaboration). The product backlog expands to include items that are
Although the vision statement is fully owned by the product owner, the development team needs to be part of the roadmap–building process. Members of the development team are the technological experts who will be doing the work, and they must provide technical constraints and effort estimates. If the development team hasn’t been chosen yet, include the functional managers after you create the initial product roadmap. These managers can help identify the skills that will be necessary and get the development team assembled as quickly as possible so that the team can provide high-level effort estimates.
When we begin working with a client, we sit down with the business stakeholders, the product owner, the development team, and the scrum master and create the vision statement and the product roadmap on Day 1. We finish on Day 1 so that the actual development begins on Day 2.
When creating your product roadmap, use the simplest tools possible. We prefer a whiteboard and sticky notes. Each product feature fits onto a sticky note. This method is simplicity in true working form.
Human brains weren’t created in the digital age. Studies have proved that electronics have a dulling effect. In fact, it takes less brain-wave function to watch TV than it does to watch paint dry. Yet using a simple system like sticky notes is physically and mentally engaging, and using it fosters an environment of change and creativity.
We have helped many clients create a product roadmap by simply placing sticky notes with major requirements on a wall and talking through ideas and issues. For one large project (worth almost half a billion dollars), we put a roadmap together in less than three hours. We start with the highest priority items. As we talk through the vision, stickies are simple to move as the roadmap begins to take shape.
You can use seven easy, common-sense steps to build your product roadmap. Perform these steps on Day 1 of your project; they should take no longer than a few hours. For smaller projects, you’ll get the job done over morning coffee. The product owner completes the steps with the rest of the project team (the entire scrum team and the business stakeholders).
Using sticky notes, several colors of flags, and a whiteboard, follow these steps to build your product roadmap:
Write down one product requirement per sticky note.
Think of as many product requirements as you can.
Prioritize the requirements on the roadmap.
At the macro level, the highest-priority items are on the left side, and the lowest-priority items are on the right side. At the micro level, the highest-priority requirements are at the top, and the lowest-priority items are at the bottom. The highest-priority items are top-left, and the lowest-priority items are bottom-right.
The nature of your product determines the quantity and timing of your product releases. We suggest a minimum of once per quarter, but the pace of innovation is increasing product releases. We have clients who push to production every day. The most successful social media and Internet firms push twice a day or more.
Ideally, you want to release tested, approved product after every sprint or, better, several times during a sprint (continuous delivery). Occasionally when working with clients, we create high-level product releases (for framing the requirements, not for timeline commitment) so that we can see how those releases align with other product releases, budgetary cycles, holiday cycles, and so on.
Figure 3-2 shows an example of quarterly product releases (common with publicly traded companies). The first release reflects initial release planning and has a level of commitment assigned to it. Everything after that shows how outside influences may affect the project.
FIGURE 3-2: An example product roadmap broken down by quarters.
If your time frame is shorter or isn’t relevant to your project, consider what your project’s time frame is and break it into the initial logical groups, going no farther out than necessary (usually, no more than a year). Follow these steps:
It won’t take you long to notice that one product requirement can be broken into several pieces. Chances are that those pieces can be broken down further, and those pieces, we’re willing to bet, can be peeled apart too. In this section, we explain how to manage this decomposition process.
With the product roadmap, you begin with the largest pieces of your project. This roadmap truly provides an eagle’s-eye view and is based on what makes sense according to business value and/or risk elimination. These pieces (requirements) are prioritized by the product owner, who decides what is most important to get to that customer first and which requirements logically belong together.
As requirements are prioritized, they become part of the product backlog. In scrum, you work on the smallest set of highest-priority items necessary to generate value, not just anything scoped for the project, which is why scrum projects release functionality faster.
Take two things into consideration as you prioritize: business value and risk. Business value is easy. If a thing has high value, it has high priority. You want to take on the highest-risk requirements first, for four reasons:
The product roadmap creates your first cut of dependencies. For example, you don’t need to worry about having functionality to submit application functionality until you have a website to house that functionality. Critical dependencies are revealed early and help the product owner prioritize the product backlog. Teams begin working on the highest-priority items on Day 2, not Day 120.
In decomposing your requirements into smaller pieces, you want to capture as little detail as possible. In fact, we want you to become expert in doing the bare minimum, progressively elaborating requirements as the likelihood of bringing them into a sprint grows. Gone are the days of spending endless hours working on defining and refining requirements that never see the light of day. Figure 3-3 depicts the layers of requirement decomposition.
FIGURE 3-3: Decomposition levels.
Seven steps are involved in building the scope of each requirement. At the end of the seven steps, you know that each requirement works, can be integrated, and has been approved by the product owner. You’re tangibly building products to showcase to stakeholders from whom you can garner feedback. This feedback is then used to refine and create new requirements that make the product better reflect stakeholder needs, and the cycle is run again. You incrementally improve the product based on reality.
The seven steps for building each requirement are
The product backlog is a true scrum artifact and the master to-do list for the entire project. All scrum projects have product backlogs, which are owned and maintained by the product owner.
The requirements from the product roadmap initially create the product backlog, and the highest-priority ones are broken into user stories on Day 1. (We describe how in “Product backlog refinement” later in this chapter.) Figure 3-4 depicts a sample product backlog.
FIGURE 3-4: The product backlog is your project’s ordered to-do list.
Each item in the product backlog has the following elements:
Specific order number (priority slot in the product backlog)
Although product backlog items may be similar in priority, they can’t be worked on at the same time.
The product backlog never goes away while the project is active. If you have a project, you have a product backlog, which is always changing. As larger requirements are broken into smaller requirements, the backlog changes. As client feedback is received, the backlog changes. As your competitors bring new offerings to market, the backlog changes.
All changes made in the product backlog are made by the product owner. At any point, if anyone (product owner, developer, stakeholder) identifies a new requirement or design idea, it’s given to the product owner to be prioritized along with everything else.
In traditional project management frameworks, change is viewed as a reflection of poor planning. If something had to be changed, it was because someone messed up. In scrum, we see change as a sign of growth. As you discover your product more deeply, you will identify changes that need to be made. In scrum, if you’re not changing, you’re not learning, and that’s a problem. It’s a lack of change that is a sign of failure. Every day you need to learn something and that causes change. With scrum, change is no longer something you crawl under your desk and hide from. Change is good. Change is life. Change is scrum.
Product backlog refinement is how the scrum team advances its understanding of the items in the product backlog and prepares them for upcoming sprints. Product backlog refinement is a continuous process of breaking down and preparing feedback and responses to change for future development. This process is owned by the product owner and performed with the help of development team members, who ask clarifying questions and provide estimates based on the best information available at that time. The scrum team as a whole spends up to 10 percent of its active sprint time in this process. The scrum master usually facilitates product backlog refinement activities to keep the group focused and on task.
The target outcomes of product backlog refinement are
Backlog refinement should be a regular occurrence, but scrum doesn’t prescribe how formal or frequent refinement discussions should be; neither does it prescribe an agenda. Here are suggestions that have worked well for us and our clients:
Format: The product owner presents one requirement to the team at a time. For each requirement, team members ask questions, challenge assumptions, explore implementation strategies, and use a whiteboard for drawing and clarification until they have consensus on the details and scope of the requirement. Then the development team uses estimation poker or affinity estimating (see Chapter 4) to assign a relative estimation.
For a requirement that moves up in priority, the estimation indicates when the requirement is small enough to fit into a sprint.
Daily, at the end of each day
This schedule also acts as a demobilization exercise for development team members to transition into going home for the day.
As the team discusses and refines the next-highest-priority requirement candidates, use as many of the following questions and guidelines as needed to guide the team through the refinement process. Not all these items apply to every team and/or requirement.
If estimations bring up additional points that need clarification, use these guidelines to further refine them before reestimating.
When we coach clients in building their product backlog, we encourage them to identify a type of backlog item (refer to Figure 3-4 earlier in this chapter).
We use four types to clarify the nature of the item to be completed. All these items can be done (or not done) at the product owner’s discretion:
Agile techniques are practiced by thousands of companies and organizations throughout the world. As a natural result, common agile practices abound. We incorporate some of these practices into our consulting business and discard others. We recommend that you do the same. No set of universal best practices exists.
User stories are used to gather customer requirements. User story is a common term for requirements small enough to be brought into a sprint and broken into tasks. User stories are one action of value that a user will achieve, such as “As a shopper, I want to be able to scan a product bar code with my phone so that I can compare and find the lowest price of the same product at multiple stores.”
Multiple user stories go into every sprint, and each are highest priority at that time. On average, you may have six to ten user stories per sprint. Therefore, at the end of each sprint, if the development team concentrates on completing one requirement at a time (a process called swarming, described in Chapter 6), you always have something to show for your work.
We use 3x5 index cards to write user stories. Even with these small cards, because we use a Card ⇒ Conversation ⇒ Confirmation model, we get rich requirement clarity before development starts. User stories aren’t the only way to describe what needs to be done, but we’ve found them to be incredibly effective. Figure 3-5 shows example index-card user stories.
FIGURE 3-5: A format for writing user stories.
Sometimes, it’s easiest to work with personas: fictional characters who are amalgams of the target qualities of your clients. A persona might be a 35-year-old single male, professionally employed, who lives in Portland, Oregon, and is looking for his future significant other. Use a persona to ensure that your project meets your target customer’s needs.
A user story description is simple yet focused, clearly describing the user, the action, and the benefit. On each card, enter the following lines:
An ID number that’s the same as in the product backlog and that’s assigned by the product owner when she accepts an item into the product backlog
Keep your product ID numbers simple. You don’t need to be able to track every item back to its more generic origin; you just need to give it a numerical name, like 123, not like 10.8.A.14. You minimize the amount of work you do by ridding your project of time-wasters so that you can focus on the important things.
Critical to the user story is what’s written on the flip side of the card — the acceptance criteria. This is how you know that the user story has been successfully implemented. It’s phrased as “When I do this… this happens.
Figure 3-6 shows an example of a completed card.
FIGURE 3-6: A completed index card.
The person who writes the user story gives it to the product owner to share with the development team. Often, the stakeholder also participates in the conversation phase, sitting down with the product owner and development team to go over every card. This act of direct communication is vital to a thorough understanding of the tasks necessary to achieve the result desired. As a result, communication is clearer and mistakes are fewer, and project quality and delivery speed increase.
Development team effort determines whether a requirement needs to be broken down further to progress to the product roadmap, into the release plan, or into the sprint (see Chapter 5 for details). Especially at the beginning, as you find out how to apply user stories within your scrum framework, you may find that the ones you write are too big to fit into a sprint.
Although most user stories have multiple steps, some are bigger than practical and can (and should) be broken into more granular requirements. This process is part of the discovery process and part of the benefit of using user stories.
You may find additional requirements that need to be placed in the product backlog during the user-story elaboration discussion. Excellent! These discoveries help you gain deeper understanding of what the customer and/or user need.