Iterative design is a simple process that goes something like this… You partake in user research and identify user need. You brainstorm ideas to meet that need, then you develop a prototype. You test the prototype and gauge if it meets that need as expected. You'll come out of this bit with some learning points, so you take those and work on an improved prototype and you repeat this until you meet that need to the best degree possible.
When is iterative design used?
Iterative design is versatile and can be used at any point during the design process. This could be after the product has been released and you're interested to make improvements. It's advised, though, to implement iterative design early on, for the most cost-effective approach.
It is almost always cheaper and easier to create a prototype than it is to develop a system or product and then retrospectively amend it, based on user feedback. There is no shortage of tools that allow you to create interactive prototypes for web and software applications and, luckily, most of them are low cost too.
Where did iterative design come from?
Consider human beings and our intentions versus our actual behaviour. Sometimes… A lot of the time, they differ (think gyms in January). We undergo user research before product development to capture that element of what people will say they will do, therefore the first model of a product will reflect only the hypothetical use, rather than the actual practical use.
By using iteration, we recognise this circumstance and can quickly develop a prototype (a simple 'model' of the finished product) which can be tested with users to then determine what they actually do with the product.
Prototyping is reasonably cost-effective (the first prototype may consist of nothing more than a notebook and a pen), as well as being relatively quick to produce. It means we can make vital improvements to designs without doing the actual development work to the product itself to then discover this discrepancy between what users said they would do, and what they actually do.
It's also handy when the design team is given a plethora of ideas and they're not totally sure which ones to pursue first, or at all. Prototyping allows each idea to be explored and tested and only the best translate into the real product. Those that don't make the cut aren't impacting the budget or project time because they were abandoned before that investment was made (and removed).
(Tangent: You can read what we said about the importance of a minimum viable product here.)
Benefits of iterative design
The benefits go beyond this cost-effectiveness.
Any wrong assumptions, miscommunication or misunderstandings are resolved both early on, and quickly.
By involving the user for research, it ensures the system will meet user need.
It encourages a collaborative development environment between client and developer, which will facilitate the desired product (imagine a client otherwise giving the developer an idea, not hearing from them until the product is finished, and that product being nothing like what they had in mind).
Developers time is focused and adds value.
It allows for a valuable project retrospective - clearly being able to define learnings.
It keeps stakeholders at the heart, gives them visibility, and therefore keeps them happy.
Iterative design means designers can create and test ideas rapidly. The better ideas evolve into development and the weaker ones are abandoned. User need is at the core, and it's also cost-effective.