Thursday, November 24, 2011

Pillars of Agile Development

image

Businesses & CIOs across the world see lot of value in going Agile for Software Development. Development teams also have been quick enough in adopting the Agile methodologies. But in majority of cases, teams have failed to capitalize on the value of Agile development and in fact reduced their efficiencies by going Agile. There is also a trend where teams have started reverting back to the old way of software development.

The primary reason for this failure is that teams have failed to understand what it takes to get value out of Agile. Just by doing SCRUM or hiring a Scrum master doesn’t make you agile. In fact it creates chaos. Going Agile is a multi-dimensional approach and is based on three foundation pillars. If the team is not matured enough in even one of these, they will fail to get value out of going Agile. Higher the maturity in these pillars, more effective the agile approach will be.

The foundation pillars of Agile Development are:

1. Test Driven Development. It is about coding against tests instead of requirements. Requirements are translated into test cases and developers code to satisfy those test cases. This considerably reduces the testing cycle but increases focus on writing right test cases.

2. Agile Project Management. This is about correctly prioritizing the requirements and right sizing the iterations. I am sure everyone must have heard stories about Google having a sprint cycle of 2 days and Facebook having it of less than a day. Start with a sprint size with which the team is comfortable, even if it is 30 days. As you mature in other 2 pillars, you can start reducing your sprint duration.

3. Continuous Integration & Deployment. This is the last leg of an iteration and requires lot of support from tools. It involves building & integrating the code frequently, running automated tests and moving it to production. Some of the tools like Microsoft TFS, Cruise Control and others can help in this.

So, if you are planning to go agile for your development make sure you address it from all sides.

No comments: