Monday, February 23, 2009

Agile methodology is an iterative and collaborative approach for software development life cycle. Agile methodology is more of people oriented. Agile methodology helps us to increase productivity and reduce risks. Agile aims to reduce risk by breaking projects into small, time-limited modules or timeboxes ("iterations") with each iteration being approached like a small, self-contained mini-project, each lasting only a few weeks. Each iteration has it own self-contained stages of analysis, design, production, testing and documentation. In theory, a new software release could be done at the end of each iteration, but in practice the progress made in one iteration may not be worth a release and it will be carried over and incorporated into the next iteration. The project's priorities, direction and progress are re-evaluated at the end of each iteration. People believe that there is less documentation in Agile. But Agile also includes documentation and it can be used for either small or large projects.

Agile methodology’s aims and characteristics include:

• Customer satisfaction by rapid, continuous delivery of useful software.

• Working software is delivered frequently (weeks rather than months).

• Working software is the principal measure of progress.

• Even late changes in requirements are welcomed.

• Close, daily, cooperation between developers and customers.

• Face-to-face conversation is the best form of communication.

• Projects are built around motivated individuals, who should be trusted (rather than micro-managed).

• Continuous attention to technical excellence and good design.

• Simplicity.

• Self-organizing teams.

• Regular adaptation to changing circumstances.