Incremental Vs Iterative Development?
Incremental Incremental development is a development approach that slices the product into fully working slices that are called increments.
Iterative development is when teams gradually build up the features and functions but don’t wait until each of these is complete before releasing.
Incremental development
Incremental development is a development approach that slices the product into fully working slices that are called increments. Each new increment builds on top of the existing released functionality.
Example: E-commerce website
Consider a team building an e-commerce website using incremental development. The final target product has a search, product information, a shopping basket, checkout, favourites, and customer reviews.
For the first released increment, the team builds the basic functionality to buy a product. It includes search, product information, adding products to a shopping basket and checkout. This first slice would only be released once it’s complete.
The second released increment builds on that basic functionality and adds another capability such as favourites. The would-be released when the favourites functionality is complete.
The third released increment adds customer reviews once that is complete, and so on.
Iterative development
Iterative development is when teams gradually build up the features and functions but don’t wait until each of these is complete before releasing. They release a basic version of each feature and add to that feature in subsequent iterative releases, usually based on feedback from the basic version released.
Example: E-commerce website
Assume a team building the same e-commerce website using an iterative process.
The first release has a really stripped-back version of all the required functionality; namely search, product information, a shopping basket, checkout, favourites, and customer reviews.
For the second iterative release, the team would improve some of the existing basic functionality, taking into account feedback from stakeholders or customer, or other inputs such as analytics.
On every subsequent iterative release, new ideas and requirements are added or low-value/usage areas may be removed.
How can you benefit from an incremental–iterative approach
The complementary characteristics of the above approaches can make the development and release process more effective.
Limited ‘Beta’ iterative releases are a way to get early feedback from the users before a full increment is released to all users. It’s a good way of de-risking a release and getting early and frequent feedback from the users.
The right approach for your organisation depends on the market, the culture of the organisation, and the phase of growth of the organisation is in i.e. is the company profitable? what is the size of the organisation? the number of users? the impact on reputation in case of a feature-poor or basic release?