Planning in Agile Way
Agile planning is nothing more than measuring the speed a team can turn user stories into working, production-ready software and then using that to figure out when they’ll be done.
The product backlog contains a list of all the features/user stories our customers would like to see in their software.
The speed at which we turn user stories into working software is called the team velocity.
This velocity is used for measuring team’s productivity working in co-located or distributed and for setting expectations about delivery dates in the future.
The engine for getting things done is the agile iteration – one to four-week iteration of work where we turn user stories into working, production-ready software.
To arrive at high-level delivery dates, the total story-points (effort) for the project is divided by our estimated team velocity (in story points) and calculate how many iterations are required to deliver the backlog items. This will be the project/release plan
Number of iterations = Total story points / Estimated team velocity
Number of Iterations (Sprints) = 300 pts / 30 pts per Iteration = 10 Iterations.
When we define each iteration of 2 weeks then all the backlog items take 5 months to complete, considering ideal days.
The effective teams do release planning with the distributed developers actively involved (they are part of the team after all) apart from iteration and daily plan, they strive to consider all associated costs, and they don’t overlook the low probability/high impact risks which often prove to be project failures.
The picture below illustrates Release Plan ( sample):
Multiple levels of planning
Agile does lot more planning and risk mitigation than traditional processes. Agile focuses on planning very often instead of doing comprehensive and assumption based planning once. The Agile teams generally focused only with the three innermost levels – Release, Iteration and Daily.