What is Agile ?
Agile, an alternative to traditional waterfall software development lifecycle, is still the buzzing word in IT world. But the history of agile is at-least two decades old!! The classical waterfall model have been guiding software development for few decades with its sequential phases of Requirements, Design, Coding, Testing and Release.The project team to Customer communication would be thick during Requirements and Release phase and thin during middle phases. Typical release cycle would be longer; between 1-2 years. The customer, after providing the requirements, would wait anxiously for the release to see the product and often times get dis-appointed with the product and it was hard hitting the business plans too. Another major problem hurting customer & business community is change opposing nature of waterfall model; this prevents from adapting to dynamic changes in techno gy, user preference los and market for business advantage.
In 1990s, while majority of software development community were using the classical waterfall model undisputed, a few free thinkers independently started working on alternate models of software development to overcome major drawbacks of waterfall model. In 2001 February, these folks came together to discuss their models. They could see that all the different models (also known as methods or methodologies) have key commonalities like light weight processes, iterative delivery and continuous customer collaboration. They gave an umbrella name ‘agile’ to represent for all these different light weight methods and their alliance was called Agile Alliance since then.
Agile alliance have formed an agile manifesto to represent their philosophies and came up with twelve principles4 based on that. The simple agile manifesto reads as below:
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over Processes and tools
Working software over Comprehensive documentation
Customer collaboration over Contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
The initial agile methods include Scrum, Extreme Programming (XP), Feature Driven Development (FDD), Dynamic System Driven Development (DSDM) and Crystal. Kanban development & Lean software development were added to agile in recent past. Although there are several agile methods, the two most popular methods are Scrum and XP. Scrum strength is its simple process framework whereas the XP draws its strength from its excellent software engineering practices. Many of today’s agile adaptations are hybrid, drawn from strengths of Scrum & XP.
Agile develops shippable quality product increments in small fixed iterations. Most widely used iteration lengths are between 1-4 weeks with 2 weeks being most popular. At the end of every iteration, the product increment is demonstrated to customer for feedback.
Agile insist on continuous customer collaboration with Product owner as part of team. The product owner responsible for maintaining product backlog with priorities. Backlog items & its priority can be updated (known as grooming) till the items are chosen to implement in an iteration.
Agile methods offer a boon to customer & business community offering
- Quicker time to market (TTM) and better return on investment (RoI) by small releases in every 3-6 months
- Enables customers to dynamically shape up product using product backlog grooming and feedback in every iteration demonstrations.
So no wonder, why agile is still the buzz world in IT industry.
Author : SrinivasanVenkatachalam