Over the last few weeks I implemented an algorithm for an interactive interface that was both sophisticated and intricate. It handled all sorts of cases, and had lots of mechanisms built in for dealing with anything that might go wrong.
To my chagrin, when I road tested it with actual users it kept failing. “What can I add to this,” I asked myself, “to make it more bullet proof?”
Today I ripped all of that sophisticated stuff out and replaced it with something very simple. The whole thing now works like a charm.
There is a lesson in this somewhere…