Beware Common Sense
Monday 19 May 2014 13:42
My hodge-podge page on test-driven development originally had a part that read:
Even when following techniques such as TDD, common sense must prevail!
This was in reference to making new test cases pass by just hard-coding new values, something that I refuted by claiming that the implementation was "obviously" not the one we wanted.
After Graham Helliwell reminded me of Uncle Bob's Transformation Priority Premise, I changed the page to something a little more helpful.
In retrospect, appealing to common sense was a copout. A few years ago, I decided to stop using phrases such as "obviously" and "of course" in my writing. The reason? If it is actually obvious, then it doesn't need stating. If it does need stating, then it's not as obvious as I think, and I run the risk of making the reader feel stupid for no good reason.
An appeal to common sense is much the same. When I say common sense, which I really mean is: from my own experience and knowledge, the "right thing" to do is second nature, and I don't have to think too hard about it. This is the "curse of knowledge": it might be common sense to me, but one of the points of writing is to explain ideas and concepts to others. An appeal to common sense is giving up that point while running the risk of insulting the reader. Being forced to consciously go through a process is a useful exercise in and of itself, making explanations of common sense useful to both listener and explainer.