An iteration is simply a fixed period of time that the development team chooses, typically for our team it is between 1 week to 1 month. Galileo intentionally keep iteration cycles short, to a fixed-length and complete all stages of the cycle within an iteration.

The key difference is the visibility of complete working features much earlier in the development life cycle, this allows us to gauge the progress and quality, and allow for feedback and adaption along the way.

The 5 stages in software development are:

  1. 1. Requirements specification
  2. 2. Design
  3. 3. Implementation
  4. 4. Verification
  5. 5. Evolution / Maintenance

The result is to see some results earlier, mitigate risk, and to allow flexibility to accommodate change.

One of the dangers of a waterfall approach is that by the time the detailed up-front planning, analysis and design are done, let alone by the time the solution is developed and tested, many requirements may have changed – especially these days when the pace of change is so incredibly fast.  Agile mitigates this risk too, helping to ensure that the right solution is delivered