What are Agile and Iterative methodologies?
System development using the iterative process divides the project into several sequential iterations, self contained mini-projects. Each iteration is restricted to a specific length of time. It includes the usual activities associated with software development, analysis, design, programming and testing. Followed by an iteration release.
The Agile methodology promotes the iterative approach as well as focusses on adaptivity and communication.
The main principles of Agile have been well defined by the Agile Manifesto:
Why Agile?
We chose to use Agile, over the more traditional and widely used waterfall methodologies, because we found that Agile:
Lowers Risk. Agile methodology is proved much earlier in the life-cycle which allows for almost immediate identification and communication of risks and issues. Research now shows that Iterative methodologies are associated with lower risk compared to the more traditional waterfall methodologies.
Is accommodating. Agile development accommodates and provokes early change ideal for new product development.
Improves Manageability. By dividing the development process into small manageable iterations, agile methodology allows for easier management of the complexities of large scale development.
Inspires confidence. Each iteration has completion date at which point the client can see a working part of the system. This iterative release process allows clients to buy in to each and every step for early and consistent success.
Improves Quality. Agile methodology introduces much higher levels of development discipline through best practices such as unit testing as well as automated integration and refactoring.
Allows for better predictability. Unlike the waterfall methodology which gives a false sense of progress, through short iterations and project backlog, agile allows for a more realistic and consistent progress tracking.
Really delivers. Using traditional methodologies, the final product is likely to match the initial vision of what it should do. Through early evaluation and client feedback, agile allows the final product to match what the client really desires.