Every morning, when I pull my shaving cream from the medicine cabinet, there is a picture of a small bunny on the side of the can. Under the picture are the words “Cruelty free”. That is my daily reminder that somewhere out there, a shaving cream company is shaving bunnies.
There is a guiding principle of second-order thinking explained by G. K. Chesterton in his book The Thing.
There exists in such a case a certain institution or law; let us say, for the sake of simplicity, a fence or gate erected across a road. The more modern type of reformer goes gaily up to it and says, “I don’t see the use of this; let us clear it away.” To which the more intelligent type of reformer will do well to answer: “If you don’t see the use of it, I certainly won’t let you clear it away. Go away and think. Then, when you can come back and tell me that you do see the use of it, I may allow you to destroy it.”
While Chesterton was thinking of social structures, this is a good principle in many areas, including computer software. Many of us in the early days of our programming careers (because of course, we’ve all learned our lesson and never fall for this anymore) come across a line of clearly useless code. Its removal would improve readability and have no negative impact, and so it is discarded. Only later did we discover that that piece of code was instrumental in preventing some error we hadn’t even realized was possible.Continue reading →