Tuesday, May 18, 2010

Is it Agile or Waterfall?

Quite often we have heard companies say that they are using Agile product development, but when we get into a discussion of their product development velocity or when I ask them how frequently they release their product, we uncover that the typical new releases take 8- 12 months or longer. Moreover, the release dates are not very predictable causing a lot of turmoil in the organization including customer dissatisfaction. This type of product development is closer to traditional “Stage Gate” or “Waterfall” development process. A true adoption of agile development framework will result in a significantly faster development cycle with more predictable and frequent product releases.
I started using agile methodology in late-1990s at HP. We used to call it "Evolutionary" product development as compared to the traditional "Waterfall" product development. We have had many successful product launches using this approach. Since then I have become a firm believer in the organized Agile product development process proposed by Scrum Alliance (www.scrumalliance.org/). Time and again the Agile process has proven its merit to me by accelerating the development process and more importantly, by making the process more predictable while delivering a higher quality end product that is better aligned with the market requirements.

As indicated in the Manifesto for Agile Software Development (www.agilemanifesto.org/), a true Agile process must emphasize

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

Agile process delivers product functionality through frequent iterations (also called scrums). Large product features or requirements are developed over multiple iterations with each iteration involving a small vertical slice of the overall functionality. The requirements are fixed within an iteration or scrum but can change for a future iteration as the particular iteration is planned. The duration of an iteration or scrum can be anywhere between 1 – 4 weeks.

The traditional “Waterfall” approach specifically focuses on proper documentation and attempts to adhere to the documented plans and processes. As a result, the Waterfall process discourages changes in the product requirements once a major development effort has started. Unfortunately, in reality, the product requirement can change significantly based on more refined market data. This is particularly true for the longer development cycle. By the time the product is released at the end of an 8-12 month development cycle the market requirements are likely to have shifted in many fast changing industries.

Transition of a product development organization to Agile product development from a legacy Waterfall process is so radical that it cannot really be implemented partially. A firm executive-level commitment to change is essential. This makes the decision to adopt the agile methods as the most important step in implementing Agile development process. It requires a bold leadership that can act as a change agent and is willing to risk short-term setback to position the organization for a dramatic improvement in the product development efficiency. While proposing Agile methods it is important to emphasize the value of adopting Agile product development. The business users and executives are more interested in the business benefits than a religious debate about "Agile" versus "Waterfall".

Once properly implemented, the Agile development process provides more flexibility, more predictable development schedule, greater visibility into the release process and improved product quality. I hope to elaborate this in future from the perspective of a Product Manager, commonly called a “Product Owner” in the Agile parlance.

No comments: