Vicious Iterations

‘Never confuse movement with action.’

Ernest Hemingway

Most of us would agree that developing using iterations is essentially safe because fast, consecutive iterations lead naturally to a self-correcting system.

But there is danger oversimplifying what iterations can do. For an iterative process to self-correct it must start in the vicinity of the desired outcome or have enough information to incrementally steer the direction of work.

Fighter pilots do not fire air-to-air missiles willy-nilly. They (1) lock on a target, (2) fire at it (3) allow the guidance system to take the weapon to the moving target.

Following an iterative process is not a license to ‘just do’. There is no amount of forward iterations that will converge if the target is behind you. Unlike numerical methods or genetic algorithms, iterations in system development are not a cold, computational problem. They involve people and the real issues of motivation, burn-out and, of course, limited time and money.

Cannot iterate to cross over a canyon.
Cannot iterate to cross over a canyon.

What I am pointing to is the need for a clear bearing during the execution of any iterative or spiral methodology. I reluctantly call this overall direction ‘vision’.

  • Even without a well-defined vision, iterations eventually find a solution, but they do so with paths that resemble the flight of the bumblebee. Much work is performed, with little real advancement.
  • Unrestrained zigs and zags are a major source of technical and conceptual debt.
  • An iteration is not a theoretical exercise; in real life it costs time and money. You cannot execute iterations ad-hoc and preserve a productive and motivated team for the long run.
  • Lacking a clear bearing, we seek too eagerly any local maxima because frankly, that’s all we have visibility to.    

When can I say, ‘good enough’?

Another key value of a clear and crisp vision is that it allows the team to declare confidently ‘good enough’.

Effective teams declare many ‘good enough’ items as they advance. They stop specific climbs when the marginal cost of the climb is excessive; when it does not provide enough value towards the vision. It is not possible to confidently declare these ‘good enough’ spots without a vision to survey against.

The problem with vision.

I will write about ‘vision’ in a future post.

Here I will just say this: It is very likely your company or team has a stated vision; and it is likely that this vision statement is so high-level that it is useless to make real decisions about what to do or not to do for the project or product.

For now, if you feel that you and your team are stuck with vicious iterations, if speed has taken over good judgement and delivery of value, then step back and invest one iteration in developing clarity.

Pause the hike, open your backpack and pull out your map or GPS. It will be well worth it.