Iteration Heuristics
Leverage iteration
- Make early and meaningful contact with the problem
- Use high quality, rapid iteration to address uncertainty
- Focus early efforts around areas of risk and uncertainty
- Use iteration to deepen understanding successively
- Favor experimental results over expert opinions
- Use the desired end state as a guide
- Reevaluate assumptions based on iteration results
- Reduce the stigma of initial failures
- Rank knowledge by how it enables new capabilities
Increase iteration speed
- Increase adaptivity
- Increase decentralization
- Fail quickly, cheaply, and in diverse ways
- Combine local overconfidence with global stability
- Prioritize rewards for success over penalties for failure
- Prioritize iteration speed over defect rate
- Create solutions with resources immediately available
- Leverage models and simulation
- Increase selection pressure
- Define and measure short-term criteria correlated with long-term goals
- Increase overall speed with a mix of long duration, high intensity, and recovery activity
Increase iteration quality
- Define value and organize each iteration to maximize it
- Iterate to make value flow without interruptions
- Complete more iterations
- Do the hard parts first
- Use the scientific method when possible
- Prioritize a rough representation of the overall system over detailed representation of a single element
- Evaluate iteration methods frequently
- From more to less useful: Products, prototypes, mock-ups, models, diagrams, concepts, words
- Incrementally iterate abstractions rather than features
- Iterate in a series of stable, but progressively improved products
- Freeze features progressively
- Eliminate defects progressively
- Cherish and learn from exceptions and failures
- Reduce clutter and simplify
- Inject some randomness into exploratory processes
- Use more randomness in early iterations, less in in later iterations
Monitor and test
- Reflect after each iteration
- Consider what didn’t happen
- Temporarily eliminate safety margins to reveal problems and constraints
- Test each iteration in an real world environment
- Use both independent and in-system monitoring
- Identify and monitor thresholds that trigger instability
Facebook
Twitter
LinkedIn