Do It AgainThe Iterative Design thinking Process
Kriti Krishan /
What is iteration?
Iteration is the process of repeating a process generating sequential outcomes with the aim to come out with a better version with every successive repetition. Each repetition of the process is a single iteration, and the outcome of each iteration is then the starting point of the next iteration.
Today, the wave of design thinking has tried to package the way us designers think, to be used for many different business processes, and understanding iteration is a big part of this mindset.
Iteration is a big part of the design process – we call it rapid prototyping. Iterative development of user interfaces involves steady refinement of the design based on user testing and other evaluation methods.
But it’s not just us designers that iterate. Agile software development is made up of sprints – quick short cycles of output repeated over and over that are known to increase the speed of the output and the overall quality.
Another classic example of iterative problem solving is in mathematics and computing – algorithms. Algorithmic iteration is the process of attempting to solve a problem by finding successive approximations for solution, starting from an initial guess. The result of repeated calculations is a sequence of approximate values for the quantities of interest which creates the pool of possible solutions through iteration.
The unpredictable nature of research requires the process to be iterative and adaptive. Unexpected information that emerges during data collection can be used to adapt methods and sample to better capture and explore further insights. All research leaves the door open for new insights, and we see iterations of research going on years and years after it is over.
Expected research process
Actual research process
The entire Silicon valley start-up ecosystem thrives in the belief that one should fail fast and fail forward. They come out with a MVP (minimum viable product) as fast as they can. Then they continue refining the product based on usage and feedback. The constant interplay between feedback from the market and adaptation of features, products, and marketing provides a much greater impact in the same duration than refining close to perfection initially.
Starbucks is a good example of a company that learned from feedback, and changed their product accordingly. When Starbucks first launched they modelled the cafes after traditional Italian coffee shops, complete with bow-tie wearing baristas, opera music, no chairs, no non-fat milk and menus written largely in Italian. It quickly became evident that the American market wasn’t looking for faux-Italian coffee shops. Realizing this, Starbucks responded, and went on to build the international-ready coffee shop model that we know today.
Knowledge itself has an iterative nature. Wikipedia, the online encyclopaedia, is developed incrementally by a community of users who work collaboratively to shape content. Any user can add or edit content at any time – so wikis are constantly evolving as people fine-tune their pages and make small modifications. It is never a ‘finished product’ and it doesn’t aim to be – and that’s part of what makes it so valuable. It’s infinitely adjustable to make room for new inputs and new knowledge – and that is the nature of knowledge itself. It is adaptable.
“The ability to create digital worlds that remind us of our own. Fractal formulas are used to generate computer graphics that look realistically like mountain ranges, and rivers, and forests, and clouds.” – Myke Johnson, Finding Our Way Home
Mother nature is no different. A fractal is a pattern that the laws of nature repeat at different scales. Examples are everywhere in the forest. Trees are natural fractals, they follow patterns that repeat smaller and smaller copies of themselves to create the biodiversity of a forest. Each tree branch, from the trunk to the tips, is a copy of the one that came before it. This is a basic principle that we see over and over again in the fractal structure of organic life forms throughout the natural world.
Common Law uses the principle of legal precedent. Courts of record build on past experience to formulate their current stances, essentially making the law a form of iterative design. There’s a clear and incremental trail of development, and it is constantly being shaped. They recognise that mindset and morality are constantly dynamic, and their processes reflect this understanding.
“Iteration – the compound interest of the management world” – Forbes, 2018
Why does an artist sketch before she paints? Because every version he makes is an improvement to the last. When you iterate, you are making your creation better with every step – up to a point.
This refinement is also the case in UX. Ideally, each iteration would be better than the previous version, but that is not always true in practice. The first few iterations can probably be expected to result in major gains in usability as the true “usability catastrophes” are found and fixed. Later iterations have progressively smaller potential for improvements as the major usability problems are eliminated, and the design may eventually become so polished that very little potential for further improvement would remain. And that is the goal.
Interface quality as a function of the number of design iterations
Catch Problems Fast
They say a stitch in time saves nine. Iterations help one catch very serious defects much sooner, that can then be fixed with little consequence. When there are feedback and checks at every successive level, it becomes easier to catch problems that would potentially grow into something serious if unchecked. This helps sanitising the workability at every level.
In today’s complex environments where things are changing constantly, speed of execution is a lot more important than perfect execution. While you’re trying to perfect a certain solution or product, the situation might have changed already, rendering your product or solution irrelevant. Iteration checks allow the process to be dynamic and adaptable as required by the environment.
“Nobody wants to fail. It’s awful. You will never hear me tell you to celebrate failure. But, failing intelligently is an increasingly important skill.” – Ashley Good, CEO and founder of Fail Forward
We have all heard the phrase – “Failure is the stepping stone to success” But in reality, how many of us accept failure? The fear of failure is what drives people to think things through completely before they start, and that is what takes away from actually starting.
Allowing failure is a powerful concept when it comes to innovation. Being unafraid of failing makes it easier to go forward with an almost-ready idea and then allowing it to iterate itself into readiness. IDEO follows a process of structured brainstorming to create products and solutions. The secret they know is this – one single idea is most likely bad (only 12 in 4,000 are actually successful). But the trick is to embrace the rapid production of those bad ideas to get to the good ones.
When you start out with an MVP, iterations happen based on feedback. This information is invaluable as it comes from the customer and users that the product is made for, and not our own assumptions and biases about them. Iterating based on this information makes your innovation much stronger than the one that hasn’t had that input. Having the backing of user input to your innovation only makes it that much more likely to succeed (which is basically the entire foundation of UX and HCD).
“Great design is the iteration of good design” – M Cobanli, Founder of OMC Design Studios
Another by-product of iteration is that everything you do, the more you do of it the better you get. In short – practicing a skill or process of innovation can only make you better at it. This is another reason that successive iterations tend to be better than the last.
Fixed vs. Growth Mindset
There are two mindsets that one can have regarding their abilities – fixed or growth.
A ‘fixed mindset’ assumes that our character, intelligence, and creative ability are static and won’t change in any way. In this mindset, success is the proof of intelligence, and striving for success and avoiding failure at all costs is the way to maintain the sense of being smart or skilled.
A ‘growth mindset’, on the other hand, thrives on challenge and sees failure not as evidence of unintelligence but as a heartening springboard for growth and for stretching our existing abilities.
When one embodies a growth mindset, iterations are just another way to keep getting better. Iterating itself is an example of a growth mindset – and a healthy indicator of future success. With this mindset it becomes easier to believe that one’s innovation is on its way to becoming better and then strive towards the same.
So When Do You Stop?
Being committed to iteration creates a setup where no product is ever finished, and there is always room for improvement. Does this mean you go into an infinite iteration loop until your hair is grey and your legs are weak and life has no meaning anymore? Not quite.
From a macro and existential stand point, iteration never stops. Change is the only constant. Nature never stops iterating and nothing ever stops evolving. The human body renews itself every 40 days, billions of cells in our body change constantly, and the only time we stop changing or iterating is when we die.
But from a more realistic UX stand point – it is even more important to know when to stop than it is to iterate. Iterating until time and resources run out is usually a bad idea and a recipe for design disasters.
So – when do you stop iterating? Short answer – I don’t know. But we can still find ways to approximate a reasonable time to stop and wash our hands off the process (of course, always situation dependent)
Based on Constraints
One way to know when would be a good time to stop is based on the constraints of the engagement. One of the easiest constraints to find is that of time or resource. Realistically, projects come with some sort of time frame. Either it is a fixed month retainer or it involves a deliverable with a timeline. One has no choice but to stop iterating when time runs out.
Based on Requirements
When a project comes with a goal to accomplish, one must remember what the goal was and when the goal has been reached in a way that marginal increase in effort does not lead to a corresponding increase in output, it is time to slow down the iterations.
Based on Fatigue
Maybe you run out of energy, maybe you have no inspiration left. Either way, when fatigue hits maybe hit stop on the iterations at least for a while.
Knowing when to stop is actually a function of expertise which can only come from experience. There is no formula. How do you know when to stop boiling pasta? Boil it too little, its raw, boil it too much and it turns into mush. But after you have cooked pasta enough times, you will know exactly when to stop. Timing is everything in cooking, and the same is true with design… and for that matter almost any creative process. How does a guitarist know how many notes is enough when he is doing an improv? How does painter know when to stop adding more elements to an abstract? So, at the end of the day, it’s not really a question of time or resources. With time and experience a true expert knows how much is too much and when it is time to stop.