A heuristic is anything that provides a plausible aid or direction in the solution of a problem but is in the final analysis unjustified, incapable of justification, and potentially fallible.
From the book Discussion of the Method: Conducting the Engineer’s Approach to Problem Solving by Billy Vaughn Koen.
We have been publishing a number of heuristics in our series on test driven development heuristics, but so far we have not defined what a heuristic is. Let’s do that now.
We find heuristics, and being explicit about them useful. We are surrounded by uncertainty. They do not, however, deliver guaranteed results for pre-defined situations. Rebecca Wirfs-Brock says in Growing Your Personal Heuristics Toolkit:
There are no guarantees. Heuristics can fail. The tenacity that defines an engineer is when she steps back, regroups, and finds a different heuristic to try next.
How do heuristics fit in with the bigger picture of (engineering) work? In a brief summary of “Discussion of the method” by John L. Jerz quotes from Koen’s book as follows:
The engineering method is the use of heuristics to cause the best change in a poorly understood situation within the available resources.
Fun with heuristics
Gus Power reminded us of “Discussion of the method”, when we found the unfinished sentence “A heuristic is a …” in a draft for a previous post. We forgot what we wanted to say in that post, so we asked Twitter to complete that sentence.
A heuristic is a …
... concept that is explained really well in Billy Koen's book "Discussion of the Method"
— Gus Power (@guspower) September 21, 2021
Some more responses:
feared weapon of the Spanish Inquisition
— Stephan Eggermont (@StOnSoftware) September 22, 2021
…girl’s best friend?
— Chris Oldwood (@chrisoldwood) September 22, 2021
:o)
erascit sirueh!
— Gojko Adzic (@gojkoadzic) September 22, 2021
… difficult to choose between. I wish I had a quick, if imperfect, method for selecting an appropriate heuristic to use in a specific situation.
— Nat Pryce (@natpryce) September 22, 2021
Closing thought
From page 1 of Koen’s book:
You and I are participating in a magnificent experiment to see whether Nature’s latest wrinkle, the human species armed with its new weapon, intelligence, has survival value.
We’ve ordered the book, but it seems to be taking a while to arrive from the US. In the meantime we’ll continue to write up some of our TDD heuristics.
We hope to write more on heuristics once the book arrives, but for now, within the limits of our current understanding of heuristics, this post must do.
Further reading
Discussion of the Method: Conducting the Engineer’s Approach to Problem Solving. By Billy Vaughn Koen. This book is hard to find and expensive. We haven’t put a link in. As soon as we’ve actually received a second hand copy, we will put in a link to the seller’s website, because they appeared to have more in stock.
Growing Your Personal Heuristics Toolkit by Rebecca Wirfs-Brock. The XKCD comic contained therein depicts a group decision process that looks eerily familiar. We particularly like “Always give yourself a chance to retreat”. For us, the trick remains to keep reminding ourselves to use that chance to retreat.
Signpost photo by Tom Wheatley on Unsplash