Saltwater
Sean Moore
Water, water, everywhere, but not a drop to drink.
If you give a man saltwater, he'll know better than to drink it, for fear of making his thirst worse.
But if you give a shipwrecked man saltwater, soon enough he may well resort to drink it, for fear that his thirst may very well get worse if he does not drink.
So if you want the man to never drink saltwater, what do you do?
You never give the man saltwater to drink. And you never give the man an ocean of saltwater to drown in.
If you give a man a bad option, he won't choose it, for fear of making his situation will be worse.
But if you give a desperate man a bad option, soon enough he may well resort to choosing it, for fear his situation may very well get worse if he does not choose.
So if you never want the man to choose a bad option, what do you do?
You never give him a bad option to choose. And you never give him a sea of bad options to drown in.
The common language and framework design mantra is make the simple things easy, and the complex things possible.
But perhaps the better design mantra should be make the right choices easy, and the wrong choices impossible.
The only thing left, then, is to argue which choices are the wrong ones.