Agile Software Development is a type of iterative software development where deliverables are submitted in stages within a couple of weeks.
Basic principle: develop a software system incrementally, allowing the developer to take advantage of what was being learned during the development of earlier, incremental, deliverable versions of the system. The development starts with a simple implementation of a subset of the software requirements and iteratively enhance the evolving sequence of versions until the full system is implemented. Each iteration gives space for design modifications and addition of new functional requirements.
Benefits to the Customer
- Customer participates more actively in the development process
- Status reports are regular and frequent
- Requirements are validated after each iteration
- Shorter time-to-market with quicker delivery of key functionalities
- Defined delivery planning according to fixed timescale
- More testing: better software quality is delivered
Which boils down to less development costs!