Have you ever struggled to explain why automated tests are important (or why refactoring should be a natural step when developing, or anything like that) to very reluctant and dogmatic but influential people such as well-established but very old school architects for instance?
I’m sure you already have experienced that and will maybe face other situations like that in the future.
How can we find new arguments to help ourselves or at least have fun in these hard discussions?
An answer can come from a funny book written by a funny man: The art of being right by Arthur Schopenhauer. The German philosopher offers 38 ways to win an argument. I suggest going into 8 ones and use them to defend our position: the importance of automated tests for instance.
1. Generalize the Matter, Then Argue Against it
You can say something like that:
You say there’s no need for validation or checks. Then, we will have no idea what we have in production. Ok, let’s go to the bugs party.
or like that:
You say we don’t have time to test, then we don’t have time to make our job and to build the project. Ok, let’s throw it away.
2. Appeal to Authority Rather Than Reason
You can name Kent Beck or some famous developers but be very careful with that. Your opponent might have no idea who these people are.
You can name a big company that makes a lot of money like Google, but your opponent can answer that you’re not Google and don’t have the same needs.
A better way to appeal to authority is to uses statistics.
3. Put His Thesis into Some Odious Category
Only unprofessional people and beginners don’t test. This is not what we are.
4. Choose Metaphors Favourable to Your Proposition
Tests are smooth, beautiful, and crucial. They are the spine of the product. Without them, all will collapse.
5. Arguments Ad Hominem
I can’t believe that someone of your intelligence and pragmatism is not able to see the importance of automated tests.
6 Persuade the Audience, Not the Opponent
If your colleagues agree with you, your opponent will feel weak.
7. Interrupt, Break, Divert the Dispute
Finally, it may be not his role to give his opinion on that. Then find a way to avoid this discussion.
I have something much more important to discuss with you. There’s a weird bug in production.
8. Claim Victory Despite Defeat
Pretend you don’t understand the conclusion if it’s a defeat. Thank your opponent:
I’m happy we finally agreed on the importance of automated tests.
Some arguments are absurd, aren’t they? Arthur Schopenhauer thought life was absurd. These 8 ways of winning might seem illogical or manipulative. I see them as entertaining.
I sometimes wonder: why would the great Schopenhauer answer if he was in my place? It can be inspiring. Most of the time, it is at least funny.
I strongly recommend you to read The art of being right. It’s delightful.
Thank you for reading. Feel free to contact me on Twitter if you want to discuss that.