Flexible iterative development

Flexible development methodology (Agile software development, agile-methods) – is an approach to software development that is oriented to the use of iterative development and dynamic formulation of requirements. The goal is to ensure the implementation is a result of constant interaction between organized work groups with members varying in skill sets and specialties.

Most flexible methodologies are aimed at minimizing risks by defining the development as a series of iterative cycles which usually last for two to three weeks. Each iteration itself looks like a software project in miniature and includes all the tasks necessary to issue a defined increment of functionality: planning, requirements analysis, design, programming, testing and documentation.

Although a new version of the product is not necessarily released at each iteration, a flexible software product is produced at the end of each iteration, at which point the team performs a valuation of further development priorities.