Iterative design is a design methodology based on a cyclic process of prototyping, testing, analyzing, and refining a work in progress. In iterative design, interaction with the designed system is used as a form of research for informing and evolving a project, as successive versions, or iterations of a design are implemented.
Iterative design use
Iterative design applies in many fields, from making knives to rockets, As an example consider the design of an electronic circuit
that must perform a certain task, and must ultimately fit in a small space on a circuit board
. It is useful to split these independent tasks into two smaller and simpler tasks, the functionality task, and the space and weight task. A breadboard
is a useful way of implementing the electronic circuit on an interim basis, without having to worry about space and weight.
Once the circuit works, one can set about designing a proper circuit board meeting the space and weight criteria. Compacting the circuit on the circuit board requires that the wires and components be juggled around without changing their electrical characteristics. This juggling follows simpler rules than the design of the circuit itself, and is often automated. As far as possible off the shelf components are used, but where necessary for space or performance reasons, custom made components may be developed.
- Wiki - A wiki is a natural repository for iterative design. The 'Page History' facility allows tracking back to prior versions. Modifications are mostly incremental, and leave substantial parts of the text unchanged.
- Common law - The principle of legal precedent builds on past experience. This makes law a form of iterative design where there should be a clear audit trail of the development of legal thought.
- Evolution - There is a parallel between iterative and the theory of Natural Selection. Both involve a trial and error process in which the most suitable design advances to the next generation, while less suitable designs perish by the wayside. Subsequent versions of a product should also get progressively better as its producers learn what works and what doesn't in a process of refinement and continuous improvement.
Iterative design and first time success
There are very few things that are a complete success the first time round, and require no iterative design to hone it. Consider a weapon needed to hunt lions. A bow and arrow
or a spear
require quite a lot of development to perform adequately. If the hunt can take place using sticks and stone picked up from the ground as they lay, that might be close to the ideal first time success. However this is a trivial exception.
Iterative design and necessary increments
In making almost anything, the need to make the tools needed to make it must also be considered. How, for example, does one hone the wooden handle of a knife if one does not already have a knife to hone it with? This poses a problem. For example, does one make the bellows for the furnace for making the blade of a metal knife, if one does not already have a knife to cut the leather of the bellows of the furnace? Another problem.
To properly study the question of how to make a knife, one must consider all the necessary preliminary steps needed to make all the necessary tools, and since these tools must be made themselves, how does one make the second order or "meta-tools" needed to make those tools. And so on.
Progress making something and its requisite tools and meta-tools is likely to be incrementally slow. Even if you know how it might be done, if you haven't the tools and meta-tools to do it with, such ideas are daydreams. The most intelligent designer is going to find the going excruciatingly slow, especially in the beginning.