Agile is software development methodology. It is very effective where client frequently changes his requirement. Since it has more iteration so you can assure a solution that meets client’s requirement and it has more than one build deployment for a project. It also involves more client interaction and testing effort.

Most agile methods attempt to minimize risk by developing software in short time boxes, called iterations, which typically last one to four weeks. Each iteration is like a miniature software project of its own, and includes all the tasks necessary to release the mini-increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation.

Productivity increases because Agile teams are highly collaborative and self-organizing. They have clearly defined roles and responsibilities. Agile teams work in supportive, open environments where ideas are freely shared and creativity thrives.