Agile software development (ASD) is a broad term used to describe a set of practices for incremental software development.
Agile software development relies on open collaboration between the customer and the team assembled to create the software. Team members are empowered to make technical decisions during the development process. The agile team can expect the engage in frequent planning, testing and integration sessions. The methodology associated with ASD anticipates the need for rapid adjustments during the creation process. Quick adjustments can be made by the members of the team at each stage of development to assure that the product meets the expectations of the customer.
Agile software development succeeds in keeping code simple while allowing for rigorous testing to maintain product integrity. Functional aspects of the product are delivered as they are completed to make certain that at each stage the software does what the customer needs it to do.
There are several advantages associated with agile software development. Frequent team and customer communication is key and provides for a level of project transparency that does not exist in traditional project management. Improved quality is also realized as the customer might identify needed changes and verify working adjustments in real time.
When done correctly agile software development builds trust between the Agile team and the customer. ASD is a people driven approach that promotes adaptive planning, real time on-going evaluation and flexible responses to change.