Most of us plan before undertaking any activity, whether it is cooking dinner, going shopping or travelling on holiday! Planning makes our task easier and gives us a higher chance of realising the end goal. It becomes more necessary when the task at hand is huge and the result is expected to have an enormous impact. Therefore, planning is an essential and critical aspect undertaken before the kickoff of any project. Agile projects too must go through several levels of agile planning, as defined by the scale of the project and other complexities involved.
The benefits of Agile are now realised and recognised by organizations across sectors. 71% organizations have now adopted Agile because of the benefits it provides including flexibility, adaptability, faster time to market and customer satisfaction. Agile projects follow a lean approach to reduce wastes and ensure rapid release of working software. Their iterative nature ensures that requirements are adapted quickly at every iteration, and there is continuous improvement of the product being developed.
Agile planning is carried out after the project has been given permission by the investors, management, and stakeholders. It is a project planning method that defines the work that needs to be accomplished in every iteration or sprint— short time-boxed, fixed length events of two to three weeks at the end of which the team aims to deliver a set of tasks which is mostly a product feature. In other words, Agile planning helps teams to understand how long it will take to achieve certain tasks and to execute the overall task.
Once the team understands how many of the tasks that have been assigned for a particular sprint are achievable along with the estimated length of the sprint, the team can create a process that can be made repeatable to complete a similar amount of work throughout the project, in every sprint. This helps to plan for the entire project and give accurate timelines and budget for the same.
The key to long-term agile planning is keeping your project details and task estimates in sync with your roadmap--Atlassian
Every agile planning process has four characteristics that need to be understood by those who perform agile planning.
For every project, the Agile plan is broken into sprints which are typically 1 or 2 weeks long. The sprints are characterised by the amount of time taken and not by the number of tasks that need to be completed. So, any number of tasks can be finished within the time slot of a couple of weeks. These tasks, also called user stories, are assigned to the team during the sprint planning session.
The best way to build software that meets users' needs is to begin with user stories: simple, clear, brief descriptions of functionality that will be valuable to real users--User Stories Applied, Mike Cohn
User stories help Agile teams break work down and prioritise tasks, based on urgency, risk and business value. User stories are prioritized on the product backlog by the product owner and are worked upon based on their priority. User stories are used by the developers to deliver value through the stages of the product development.
Agile is iterative in nature. Sprints are of fixed lengths and the same process involved in the initial sprints is repeated and again in the future sprints. Each sprint has an end goal, which is a releasable, working product features. Its iterative nature helps teams to define what can be achieved in each sprint and how they can resolve problems that they may encounter during the sprint.
The estimation and planning are done by the Agile team and not by management or stakeholders. The team decides on the values or story points that it assigns to user stories and thus takes accountability for the estimation and planning.
It most certainly is! The Scrum Guide which is the definitive bible for Scrum defines Sprint planning, which identifies the plan to be followed to accomplish the tasks for the sprint. So, we can say that Scrum is very prescriptive and does not allow too much freedom for developers to do their own thing. Agile planning on the other hand is much less concrete and gives the team the fluidity to tweak the processes according to the needs of the project.
Before Agile and its quick working and turnaround times became more mainstream, project teams and leaders spent huge amounts of time in project plans and details. Projects used to be large and waterfall methods demanded and got long periods of time for project completion.
But the emergence of unstable markets, the rise in consumer demand and changing technology and the need for fast release of software led to the rise of Agile which brought in all the advantages that markets and customers demanded.
Traditional planning is not iterative or incremental, but Agile project planning is. This helps to release working software at the end of each sprint and accommodate changing requirements of the customer. Traditional planning on the other hand involves a heavy planning process which is time intensive.
Traditional planning follows an upfront planning approach where the plan is first formalized and approved and then the work starts. Comparatively, Agile spends less time on upfront planning. This may not always be the best for certain projects which may require an initial plan to be drawn up before the actual work starts.
The plan must focus on the needs of the customer and deliver value accordingly. The whole purpose of the Agile project is to make a product of value for the customer and the Agile planning phase too must work towards this goal.
The part of the reason agile planning is quick is because it does not go into many details. Agile frameworks like Kanban follow just in time development, which means that the features to be included are decided just at the time of sprint planning and iteration planning. This delaying of critical decisions may seem unnatural, but when the time comes to make the decision, keeping all considerations in mind, it becomes easier to take the decision.
The concept of frequent deliveries has several advantages. First, releasing the prototype quickly keeps the customer happy as they have a working product on their hands. Second, this can be worked upon in all the future increments and sprints and additions and improvements can be added and lastly, if modifications need to be made, they can be made as each feature is released and there is no need to wait till the end to suggest changes.
Most agile planning estimation techniques give probabilistic or relative dates and not absolute dates. This works for the team as they have a range of dates in case they fall behind schedule and works for the customers who prefer having a range rather than a fixed date.
Quality cannot be a separate process that is conducted at the end of production but should be integrated into the build and carried out simultaneously along with development.
Agile estimations and planning leans on historical data and estimates to draw up plans and to drive forecasting. Historical data that includes sprint time and completion can be used to give probabilistic dates for project completion time.
Agile frameworks like Kanban use the two-step plan very efficiently. This involves first creating a high-level plan or roadmap of all the major deliverables and features. Then this high-level roadmap is broken down into smaller tasks which are doable and time bound. This two-tiered plan increases productivity and lowers chances of risks.
Let us create a project plan for our project, which is to create a new e-commerce website. Using the two-tiered approach we would first define the roadmap and the major deliverables and project releases. The deliverables mentioned at this stage will not be detailed in going with the Agile concept of not planning too much in the initial stages as it may lead to wasted efforts. An Agile project timeline can be used to build a roadmap for the overall deliverables.
The next step in this approach is to break down the roadmap into smaller tasks. Once this is done, the topmost priority items are listed, and the development team starts working on that. As the team progresses through the tasks, they make revisions and enhancements and thus bring in the concept of continuous improvement.
Agile offers a degree of flexibility and adaptability that the traditional project management techniques do not offer. Agile planning likewise offers a great deal of flexibility to teams to draw up plans for work allocation and deliverables, while at the same time, not overcommitting to the clients.