Agile Planning and Estimating covers the activities involved in actually planning how the software being developed is going to be built, splitting up the development into manageable pieces and deciding a schedule for the release. This part of my Agile development guide is based on the excellent book by Mike Cohn, Agile Estimating and Planning.
The following picture, taken from http://www.ebgconsulting.com/WorkshopsForAgileProjects.jpg, provides a clear overview of the activities completed during an agile project.
A release plan is the high level plan that is used to identify what needs to be completed and what time frame is required to complete enough before a releasable product is achieved. The release plan is also the milestone that the team will be working towards over the course of the project and is used in determining overall project health. With this plan the team has a clear goal of not only the project expectations, but also the expectations of the team; it provides overall goals.
A project must have objectives, this is most often financial but can be evaluated in a number of different ways. I’ll write another post of producing a business case to detail the steps that can be taken in evaluating and justifying a project. Realistically, a project should deliver value in the most efficient way possible. It may be the case that realising 80% of the total value in only 20% or 50% of the time is far more desireable. Identifying what themes are required to deliver the desired outcomes is a critical part of this stage.
A project may be feature driven or time driven. In the former case, the team will derive a time scale by summing the points for all of the selected stories, dividing by the teams velocity (To give the number of required iterations) and then multiplying by the length of the iterations. This will generate the expected time to completion for the project.
For a time driven project, you should calculate the amount of available story points and then proceed add stories until the allotted time has been filled. You can determine available story points by dividing the time frame by the iteration length (To give available iterations) and then multiplying by the velocity.
In order for a sponsor to identify what the objectives, constraints and expectations of a project are, the team should have estimated any themes or stories that may have a reasonable chance of being included in the release.
With the completion of these activities, the project will have a justified reason for undertaking it, expectations of various stakeholders and both time and cost estimates.
The final stage is to sketch out at least the first iteration, and possibly an additional 1 or 2. Planning further than this can be wasted effort as when new knowledge about the product and project is obtained, future priorities will undoubtedly change. It is often best to simply keep the next iteration planned and ready to go, the following 1 or 2 roughly planned and the remaining stories in the backlog.