Iteration Exit Criteria

A heuristic I use to decide when iteration is complete is something like:

Quit when the change from the last iteration falls below a certain threshold.

This is analogous to other processes that converge like, say, computing the digits of pi. After a while, the change (value added by each iteration) doesn't matter much anymore - it's somewhere out in the 10th decimal place (or the 1000th if you're really picky).

The threshold is usually intuitive, but I suppose it could be described in a more formal way. You would have to have a way to measure the change, then have a way to define a change that "doesn't matter."

We've been doing an analysis for a manufacturing system, and we knew the analysis iterations were nearing an end when the stories from the users/customers were starting to repeat themselves and fit easily into the framework we had made.

However, just to add a twist, I do believe there is almost always a FalseEnding (there's a better name for this but I can't think of it) to this convergence process. That is, just when you think you've converged on the solution, another insight or another problem rears its head and you have to make some radical changes to your framework to address it. In retrospect, the changes make sense, and they don't necessarily break the framework - rather, they improve it - but they cause a lot of refactoring.

(I wonder if the FalseEnding comes about because problems are really layered, or fractal, and clearing up one layer just lets you see clearly into the next, which still needs a lot of work... more on FalseEnding page)

-- JeffMantei 2000-11-28

In some mathematical tasks, you can reduce the problem of FalseEndings by using a criterion like "Stop when none of the last three iterations have made much change". In R&D (of software or aeroplane wings or whatever), this might translate to: When you think the system is finished, don't release it until you have spent at least such-and-such a time continuing to work on it and think about it and fiddle with it. That way, once it is in its most comprehensible state you keep it in your mind for a while and may be able to spot new improvements.


EditText of this page (last edited April 28, 2005) or FindPage with title or text search