4/18/17

Why they hate me whether I'm talking about TDD?

Have you ever tried to spread TDD ideas? Have you ever been trolled after that? What do you think why it happens?
From my point of view, there is only one cause of this behavior: we casually offend our audience. Please, let me explain.
First of all, we love to say: "If you use TDD you write clean code". Of course, it is true, but your sentence can be interpreted as "If you don't use TDD, you don't write clean code". It's a bit like an indirect insult. So, I believe we should rephrase the previous phrase as "If you us TDD it's easier to write clean code".
The next idea that I saw in a few books sounds like "High-skilled programmers usually use TDD". And it's true too. But if you use this argument in a discussion with a really high-skilled programmer who doesn't use TDD, he'll never change his attitude. Just because it looks like a doubt of his expertise. Moreover, I believe that we shouldn't spread TDD within Chief Developers because if someone is able to design huge systems properly without TDD, his productivity will not change with TDD.
Another typical argument is "TDD is universal. You can use Test Driven Development for every type of project". Yes, you can. But there is no a silver bullet. Moreover, every developer knows it. And if someone talks about a silver bullet, no one can trust him. So, I guess we should say "TDD isn't universal. But for your type of projects it worth using".
And finally, the most frequently used phrase: "There is only one disadvantage: following TDD takes additional time but you'll save it later on bugfixing". And again we're talking about a silver bullet. And again, no one trust in a silver bullet. So, please, tell something more about disadvantages, it's a really important question.
So, to recap, I suggest that we should care about our audience. If we stop offend them, they will probably trust us and their life becomes better.