Iterative vs. Incremental

From AgileMe
Jump to navigation Jump to search


Iterative vs. Incremental

Incremental

An incremental approach looks to deliver successive parts towards the end goal. The learning from doing one part at a time helps to understand how the next parts should also be done. If we are to build an online bookstore website for example using an incremental approach, then we may build each web page at a time and learn a lot from each page as it is built. We won’t get the complete bookstore website until the end when we get the finished product.

Difficulties of incremental delivery include a “meandering walk” in which successive increments may be too reactive from one increment to another especially if there is no overall goal or objective to head towards.

Integration of iterations is normally done with each successive Increment which are expected to be “…thoroughly tested, ensuring that all Increments work together.”[1] Incremental delivery tends to work well with small increments that can be reasonably well defined and “known”.

Iterative

An iterative approach by contrast is a “…rework strategy…”[2], that aims to satisfy an objective or end goal from the outset with successive iterations improving the solution. A goal could be a learning objective or an experiment such as “which browsing page concept will resonate with our online bookstore customers” for example. Using an iterative approach with an initial prototype that is very basic in functionality and quick to produce can allow us to capture some valuable and evidential feedback quickly, which can then help us to refine our assumptions and understanding of what the landing page should be. Repeating this process allows us to continually refine our understanding and the solution for the browsing page and evolve towards something that our customers really want.

The down side of this approach is that the end outcome may not necessarily be known at the outset, which can lead to ambiguity and uncertainty in the early iterations often leading to concern and anxiety. However, the certainty improves over time as additional iterations are completed and the end solution becomes clear. Arguably the cost of reworking the solution and evolving prototypes is offset by the feedback learning that is acquired through an iterative process that tests ideas and gathers evidence to confirm or discount early assumptions.

Iterative approaches are great for uncovering unknowns or exploring areas where the solution is not immediately obvious, and there is a need for feedback to determine the next steps to refine the solution.

The Scrum Approach

The Scrum Guide describes the use of an “…iterative, incremental approach…”[1], which implies using both the benefits of feedback and understanding through delivering successive potentially releasable Increments that integrate together, with the use of an iterative approach to refine the Increments and the solution to meet the needs.

In our online bookstore website, we may create a prototype browsing page as an Increment for the Sprint which is then inspected by our customers, and based upon their feedback we can then improve the prototype as a next iteration. We may continue this approach until the browsing page is refined enough to be satisfactory to meet our needs, and then move on to the next Increment.

Taking a wider perspective, we may also take an iterative strategy across the whole online bookstore website, producing all of the very basic web pages necessary as Increments in the Sprint, which then form the prototype for the website. This can then be evaluated by our customers, and based upon the feedback, improved with successive iterations and future Sprints.

References

  • Scrum Guide
  • Essential Scrum: A Practical Guide To the Most Popular Agile Process, Rubin K.S., 2013