Agile model is the methodology of software development, based on the agile manifestation, which was firstly introduced in the year 1990. It is an alternative approach to the traditional way of carrying out the software development process.
It is, generally based on the iterative approach, where requirements are evolved, through consistent & continuous interaction and collaboration between the teams, involved in the development process, including the client or stakeholders, also.
It involves the rapid development of the software product, by coupling the development and testing process, in each development cycle or sprint and delivering software product after each sprint or iteration. Unlike, general SDLC models such as waterfall model, the agile model focuses on the adaptive growth of the development process.
Agile development demands, involvement of all the teams associated with the software development, including stakeholders, repeatedly, in each iteration of the development, so as to improve the quality & fulfil the requirements & functionality of the software product, subsequently, after each sprint.
The strategy that drives the agile development process consists of following activities.
Teams associated with the software product i.e. business team, planning & designing team, development team, testing team, and others, collaborates at one place.
They all act and work as a single team by maintaining constant communication and interaction with each other, and starts the development of the software.
The product being developed is tested by the testing team and is passed over to the client, for further evaluation. The results of the test execution and other aspects are discussed and analysed, which determines the strategy and requirements for the next sprint or iteration.
The number of sprints, to be executed is not defined. However, it is desirable, to continue sprinting, until all the necessary features and requirements are being covered.
An alternative approach to the traditional method of software development.
Requirements are dynamic, and are generally, evolved through continuous collaboration between the teams.
Based on adaptive growth, this model works effectively, to meet and implement the continuous changing or late coming requirements in the software product.
It provides solution to the client's query- "What's going on, in the development"?
Quick delivery of the software product after each sprint and involvement of the client or stakeholders in the development reduces the bugs and saves both time and money on the project.
Client has not to wait, till the delivery of the final product, this approach, enables the client to visualize and assess the software, after each sprint.