Every project is based on a set of assumptions. It is only when these assumptions get tested that you find out what you really know (or don’t know). This gain in knowledge is often called ‘climbing the learning curve’. You can think of design iterations as wheels to help make the ascent. By this analogy, faster and larger wheels get up the curve quicker. Larger wheels come from getting more information for each iteration, ie testing more key assumptions. Faster wheels come from shortening the iteration cycle times.
Testing more assumptions
Get the most knowledge you can out of every design cycle by planning ahead to try to validate key assumptions. One good assumption: this design iteration will still have some problems, so build in ‘hooks’ for debugging where possible- this allows building the insight needed to solve unforeseen problems.
Shorter iteration cycles
Shorten the full design cycle (design/build/test) wherever possible. Once you find the bottleneck that prevents further cycletime reductions, never let it have idle time- keep it busy working the program. Try staggering design iterations that check different sets of assumptions to cut down on pure sequential learning.