Web Design Resources

Web Design Resources

Agile Software Development

Typical software development follows the following core processes:
  1. Requirement gathering and analysis
  2. Design
  3. Coding implementation
  4. Testing and deployment
  5. Code maintenance
In practice, this so called waterfall method of software development does not really work efficiently.

Limitations of the Waterfall model
  • Each stage has to be completed before moving on the next
  • Requirements cannot change once the coding is initiated
  • It assumes that written requirements suffice for accurate development
  • It does not allow for prototyping
Agile Software Development
Agile Software development was introduced in 2001 to address the shortcomings of the waterfall model. Rather than a technology, agile development is an umbrella term that involves various iterative processes under it. Agile development is hence based on iterative and incremental code development, where requirements and solutions evolve through collaboration between cross-functional teams. It is important to note that the end client too is involved in the development earlier rather than later.

Evolution of Agile Development

In reality, the principles of agile development have been around for several years now. The key differentiator between a waterfall model of development and agile development is ‘incremental development.’ Thus, agile development involves iteration and continuous feedback to successively refine and deliver a software system rapidly. Agile development techniques are lightweight (especially when compared with the waterfall method) and very flexible.
The Agile Manifesto, announced in 2001, embraces the following core development concepts:
  • Individuals and their interactions
  • Delivering working software
  • Customer collaboration
  • Responding to change
A few popular agile development methodologies include Scrum, Crystal, XP, Dynamic Software Development Method (DSDM), FDD (a wrapper technology) and Lean.