Iterative design

From Wikipedia, the free encyclopedia

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.

Contents

[edit] An example of iterative design

Iterative design applies in many fields, from making knives to rockets; let us 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 would be 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.

If one attempts to design the final compact and lightweight circuit board in the first instance, then one runs the risk of "walking before one crawls", and "biting off more than one can chew".

[edit] iterative design in software

See Spiral model, bottom-up design, and Extreme Programming .

[edit] Iterative design in electronics

[edit] Iterative design in 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.

[edit] Iterative design in the development of 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.

[edit] Iterative design and evolution

There is a clear parallel between interactive and Darwinian evolution. 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.

[edit] 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.

[edit] 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 could be a problem.

How, 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.

[edit] Iterative design and progress through dreams

Significant progress can and does get made through leaps of the imagination and dreams. A few examples include:

[edit] Problems with iterative design

A few problems are not suited to iterative design -- they are all-or-nothing, either inherent in the problem or artificially. One cannot iteratively refine flapping-wing propulsion to develop jet propulsion. (Or at least there is no known way to do it).