Thursday, October 20, 2011

The Ingenuity of Fools

Foolproof systems do not take into account the ingenuity of fools. [source]

This axiom holds true in designing computer systems. It manifests itself in the requirements phase of the project. Admittedly, your users are [probably] not fools. But, there are certain statements that raise the hackles on the back of my neck. You know the ones--they're generally "numeric" in nature . . .

We never have more than . . .
We always have at least one . . .
Whenever, I hear something like "we never have more than 5 entries", you can be sure that the first time you get a call about your newly installed production system, it will be "hey, why can't I put 6 entries . . .".

So I have a couple of design axioms that I live by.

Never set an upper limit.
Plan for there to be no entries.
Stick to these and you will eliminate a number of issues when you system goes into production.

So why isn't is caught in testing? It's usually because they don't test for it, because if "never happens".



No comments:

Post a Comment