Agile Release Planning
Agile release planning differs from traditional project planning in that it is based on a selection of features that are developed during a specific set of time (the sprint). The ultimate purpose of Agile release planning is to achieve the product vision - the high-level goal for the product and how it aligns with a business strategy.
An Agile project’s release plan is the all-encompassing timetable focused on planning multiple iterations in an effort to determine when each release will be delivered. In order to achieve the product vision, there are several details to consider prior to building a release plan, including:
- Availability of the product owner
- Prioritized backlog that has been reviewed by the product owner
- Identified team members and stakeholders
- Team member locations and availability
Each iteration or sprint will also have its own plan.
In Agile project management, the product itself is developed in sprints. The goal of sprint planning is to determine the features and functionality that will be included in the next iteration. Before each sprint begins, a sprint planning meeting takes place between the product owner and development team members. The user stories and backlog are reviewed to determine the tasks that can be completed during the sprint. These plans deliver a finer level of detail (compared to the high-level release plan), including which tasks are to be performed by which team members and how long each task will take.
Activities that occur during the Agile planning process include:
Task Planning: Agile team members break the features down into tasks and then team members take those tasks on. As a matter of best practice, look at the time estimates and try to break any task that may take longer than a day down into smaller tasks. This helps to reduce uncertainty and foster successful task completion. It also feeds into the job of estimating, as it is much easier to estimate the time required to complete a smaller task.
Agile Estimating: It’s true, estimating the time to completion can seem like a matter of voodoo more than science, but some principles can help to make it seem less like guesswork. As a best practice, rely on past success to estimate a particular effort. For example, rely on past feature delivery velocities to plan future velocities. If the team was able to deliver X features in the previous iteration, then plan to deliver X features in the current cycle. In Agile Release Planning By Example, Brian Stallings and Valerie Morris provide the following useful practices for estimating time to completion:
- Reference historical data – Team specific
- Be realistic, not optimistic
- Estimate based on smaller units of work rather than larger ones. Estimates based on tasks rather than features, therefore, are going to be more accurate
User Stories Development: The Declaration of Project Principles states, “We deliver reliable results by engaging customers in frequent interactions and shared ownership.” By communicating with the customer, you can determine the overall goal for the project and, in turn, an overall goal for the sprint/iteration. Rely on that goal to develop your feature/user story priorities and then allow your priorities to guide the selection of which features/user stories to develop during the iteration.
Backlog Management: There are two types of backlogs to consider:
- The Product Backlog is the master list of things to be built into the product.
- The Iteration Backlog is the list of priority items to be built during the current iteration.
The key to managing backlogs is managing priorities. Work with your customers to ensure that the most important features are delivered. Again, as the Declaration states, “We deliver reliable results by engaging customers in frequent interactions and shared ownership.” The customer can tell you which backlog items have the highest priority, and which backlog items have the highest priority at that time. Priorities can shift, so be sure to check with customers periodically to make certain that the next iteration is still being planned appropriately.
Agile Scheduling: Agile scheduling is perhaps the most “project managerial” of project management activities. The following are some useful guidelines for managing scheduling:
- Schedule in detail only for the immediate iteration: Sprints/iterations are useful for managing uncertainty, but it is adaptability that drives sprints/iterations. Scheduling too far in advance prevents you from being nimble and responding to changing priorities.
- Involve the entire team: Scheduling is a team activity that is driven by estimates, so the team should be involved in the entire process, not merely for accurate scheduling, but also to promote buy-in.
- Design and testing are also part of development: Keep the time for these required activities during sprints/iterations in mind as you build estimates and schedules.
- Include time for the demo meeting: The demo is an important part of the release, and should be part of the schedule.
According to the Declaration of Project Principles, “We expect uncertainty and manage for it through iterations, anticipation, and adaptation.” One primary constituent of uncertainty are dependencies. To avoid this pitfall, Agile seeks to limit dependencies through sprint/iteration planning because tasks are not developed with an overarching project in mind, but in a more granular form in which a set of features can be developed in parallel and delivered in working order during the one to four week period that typically defines a sprint/iteration. As a matter of best practice, plan your sprints/iterations to avoid dependencies.
As the Declaration of Project Principles states, “We boost performance through group accountability for results and shared responsibility for team effectiveness.” Metrics are the means by which results and effectiveness are measured.
Some valuable metrics for measuring team performance include:
Burn rate: The rate at which a project’s budget is being spent. The cost of the project is something that will be requested and must be measured against the expected return. This is simply a matter of business value.
Delivered functionality: An Agile team’s purpose is to deliver functionality at the conclusion of every sprint/iteration. Three ways to measure this are:
Velocity: The number of features/user stories that are worked on during a sprint/iteration.
Defects: How effective the development was based on the number of defects or bugs discovered.
Burndown chart: The amount of work that needs to be completed before the end of the project.
Effective project management is about helping the team meet goals by identifying and eliminating obstacles. To that end, keep the following in mind:
Agile is about individuals and interactions: Metrics are good at providing an overall picture, but they don’t provide all of the details. So, when a metric says there is a problem, talk to the team members to find out what is happening.
Watch the trends: If defects are high but declining over time, then the team is solving problems. If defects are holding steady, it may be that the team is not managing the defects at all. This requires further investigation.
Agile Planning is About Teamwork and Collaboration
Agile projects are managed by the entire team, primarily at the iteration level. The team must work together to select features from the backlog that will be built into the current iteration, estimate time, schedule work, and drive the project towards the product vision. The project manager maintains the plan, but it is really the team that owns the plan and is responsible for meeting plan requirements and deadlines.
Agile is about individuals and interactions, but it is also about teamwork and team ownership. In traditional project management, it can feel as though the project manager is in a lonely position, gathering data to put together a plan that is then handed down to task owners.In Agile the project manager is a task owner among task owners and everyone contributes.
Why Smartsheet is an Effective Agile Planning Tool
Smartsheet is a spreadsheet-inspired task and project management tool with powerful collaboration and communication features that are essential for Agile project management. Use it to prioritize user stories, manage product backlogs, and iteration backlogs.
Easily switch between Grid, Gantt, and Card views to manage project details and track deadlines. Use one of our agile project plan templates to quickly get started, then customize it to fit your organization's needs.
Use Card View to focus attention with rich cards, give perspective with flexible views, and prioritize and adjust work more visually. Display information on cards including custom fields, images, and color-coding to better focus your team’s attention. Agile project managers can categorize cards into lanes to help organize what needs to happen in sprints and iterations.
See how easy it can be to use Smartsheet for Agile project planning. Try Smartsheet for free for 30 days.
Want more project management tips and best practices? Check out our Project Management Resource Hub for the latest articles, templates, and more!