2014-02-12

How many times has it happened that you had a perfect plan for a holiday or some event that you were organising and the plan fell flat owing to some scenario that you hadn’t anticipated? Well, we have all been there. German Field Marshall Helmuth von Moltke the Elder has put this succinctly – “No plan survives contact with the enemy”.

Perhaps you were able to recover in some of those snafus but, as some of us would agree, it was because you improvised, you adapted to the situation, and reacted accordingly. Well, that is being Agile truly.

We have grown up thinking we need to plan for the future down to the smallest detail. But the reality is something entirely different. Yes, we need to plan. But not as much as we think and not as far in the future as we are led to believe. We need to plan better, not more.



Stepping away from the traditional Waterfall method and towards the Agile Method

This statement couldn’t be more appropriate for software development. The Waterfall model of software development relied on heavy upfront planning that was documented heavily. Then the software teams were made to march a thin line that was their plan. But after all these years, a lot of frustrated clients and money poured down the drain, we have realised that the Waterfall methodology probably wasn’t the best way to go forward. This is why Agile software development model came into being. It includes various levels of planning but each detailed appropriately and not focussed on having all details mentioned upfront.

There’s no reason to have a plan B because it distracts from plan A.

- Will Smith



This are just some of the basic steps that have been highlighted below. More detailed steps will be added in the blog posts to come.

How Does The Agile Process Work

You begin with a high level list of features duly prioritised (called the Product Backlog). Then a few items are picked from the top of the list (highest priority items) and details thrashed out. These detailed items (called User Stories) are estimated by the development team and then a few of them are selected to be completed within a short time box (one to two weeks long) called the Sprint. The list of items to be worked within the Sprint is called the Sprint Backlog. During this time, the team implements the features selected in the Sprint and at the end of the Sprint you have working software in accordance with your requirements. This process is performed iteratively over the product backlog and during the course of the development, you can release the working software to the market multiple times.

Effectively, we don’t plan the entire project in advance. We plan at a high level and then refine bits of the plan iteratively. This helps us incorporate ground realities in our plan as we go about refining it. Things change all the time and we make sure that we are in a position of reacting accordingly. Quoting the famous American General George S. Patton - “A good plan executed today is better than a perfect plan executed at some indefinite point in the future”.

Show more