Test first? How do I test something that is not yet written? And before all, why? It makes no sense.
Try it a few times and you’ll see how powerful it is!
Open–closed principle? The more I close my code to modification, the more closed it gets for extention. You can’t have both. It makes no sense.
Only until you realize that it’s actually possible – with interfaces or other dependency inversion techniques.
The best code comment is the one that never existed? Comments are the only thing that allows me to navigate my messy code. You want me to stop writing them? It makes no sense.
Yes, stop writing comments and delete all of them. But only after you clean up the code to the extent that comments are not needed. There are ways to do it.
These ideas feel absurd the first time you encounter them. Yet, they start making sense after some consideration or trying them out in practice.
Knowledge is generally additive. You learn something new that adds to all the previous knowledge you had learned.
However, sometimes you can encounter a paradigm shift. Learning a new thing undermines or contradicts some of the previous knowledge you had learned. You need to redefine some ideas (tests) or see the bigger picture (long-term effect of code comments).
If you are familiar with cognitive biases, this shouldn’t be surprising to you. Humans tend to perceive reality wrong all the time. Not always. But all the time. The sense that things make to you or not is more like your opinion than a fact.
Rejecting nonsense ideas is like rejecting opinions because they are different than yours. This leads to a spiral of confirmation bias.
Plus, opinions are opinions. What if you are the one who’s wrong?
Sometimes to embrace the new you need to see the bigger picture or redefine some ideas. Powerful ideas are beyond your current level of sensibility.
I’d go as far as actively seek “stupid but there is something to it” ideas. I think they are so powerful because they don’t make sense. The reason why I’m this patient with such ideas might be my strong Ideation theme.
So what to do?
I want to be clear that I’m not expressing a preference for nonsense. I’m not saying you should reject sensibility altogether. Most ideas would still make sense. I’m only saying that some of them will not make sense at the first glance.
The bad is to automatically say “no” to ideas because they make no sense, without deeper consideration.
The negation of this is also bad – to automatically assume that “something makes sense” means it’s the only reasonable way of thinking.
The good is to be open-minded to new ideas, even if they seemingly don’t make sense. Maybe there is something to it…?
The good is to keep asking yourself “What if I’m wrong?”. When considering a nonsense idea, try to answer: “What would need to happen for this to be true?”
The good is to experiment. Listen to Kent Beck:
If an idea is obviously bad, find a cheap way to try it; if it works it’s extremely interesting
Here are a few examples of beliefs that I consider true, even though initially they used to make no sense to me. Feel free to ask for more explanation if you need it!
- The only way to go fast is to go well
- Refinements should be as short as possible
- Deploy directly to production
- The target number of questions in communication is 0
- You can’t afford cheap things
PS. The top image is generated by DALL-E (prompt: making sense is overrated). I love the vibe of irony and meme-ability of this one!