
As a project manager, you need to perform the balancing act of moving software development forward, controlling costs, ensuring quality — and meeting client deadlines. A proven way to effectively manage agile software development projects is release planning. But before you can set a schedule for work and delivery — and make promises to clients — you and your team need the right information that will help you make informed decisions.
Estimation
Before you can plan work on a project or a deadline, you need to determine how long it will take. There are two primary ways to estimate work. An Atlassian Agile Coach article points out that many teams have moved past estimating by days, weeks and months to using story points, which are a relative way to compare how much effort an iteration of the project will take. Story points can use a multiplicative scale, like 1,2, 4, 8, 16, 32, …, or a Fibonacci- sequence, for example, 1, 2, 3, 5, 8, 13, 21 …. Your team may find it easier to use “T-shirt sizing” (XS, S, M, L, XL …)
For story points to be useful, there has to be something to compare the project to – use a completed task that was well-documented and that the entire team is familiar with for the comparison.
Velocity
Once your team has determined how much effort the iterations of the project will take, you need to track how fast your team can complete them by measuring velocity.
The Agile Alliance defines velocity as the total estimates that were completed during an iteration. The team totals the story points for all completed user stories. Automating time tracking can help your team better account for its time — while saving them from having to track and record it manually.
Scrum Inc. points out that it’s important to track velocity on a sprint burndown chart, which keeps all team members informed of their productivity and whether they’re staying on track with the project.
Over time, a team should be able to forecast velocity based on past projects — and see velocity improving with each sprint.
Release Planning
With the estimations and the velocity at which your team can work to complete an iteration, you can develop a release plan. A VersionOne CollabNet article points out the ultimate goal is keeping development cycles as short as possible: Agile release cycles should be less than one year, and are often as short as 3 months. Plan for iterations to be completed within that time frame, usually taking between a week and a month to complete.
The VersionOne CollabNet article states that preliminary release planning will estimate which features will be delivered by the deadline or to choose an estimated delivery date for a set of features. Customers should participate, prioritizing the features, but the team should work with the client to adjust the schedule so they can deal with potential risks sooner – which will help the overall project from being delayed.
It’s also important to adjust your plan continuously — one of the tenets of agile is to continuously adapt and improve as development continues. Release planning is best considered as an estimate, and not something you must adhere to at all costs.
Release Planning Pitfalls to Avoid
Even teams following the best-laid plans are bound to encounter circumstances that may require changes to their plans. Scrum.org says organizations are prone to common mistakes like underestimating how complex the project is or not mitigating risks by dealing with them early on.
Errors in planning also occur when you aren’t honest with stakeholders. You may not share all important information about risks, you may allow stakeholders to assume that there will be no further cost beyond the initial estimate, or your team may make commitments to your clients that you can’t keep. Maintain a high standard of professionalism and transparency, keeping your clients informed of risks and progress and being honest about your ability to deliver work by a deadline.
Use Good Data, Make Smart Decisions
Coding Sans 2018 State of Software Development report states that the top causes of delivery problems for software development teams are unrealistic expectations and estimation. Improving these areas of your business can have far-reaching effects — from smoother day-to-day operations to happier employees and clients. Compile the data you need, develop a realistic and logical plan, and manage releases in a way that ensures work is done and done well within a reasonable time frame.