Are you still sceptical about TDD?
I'd like to challenge your beliefs and assumptions by sharing the 8 common fallacies about TDD.
Firstly, how are fallacies formed in our heads?
Fallacies (incorrect beliefs) are formed in our heads because of how we infer information.
Given the amount of information that we consume, human brains have evolved to filter a lot of information out to make an inference and jump to conclusions, the fallacies.
That's why believing in fallacies should not be seen as a weakness.
My intention here is to help you climb down the ladder of inference.
Here are the 8 common fallacies about TDD and how to think differently about them:
❌ Fallacy 1: If it's not here, it's not anywhere.
"We don't use TDD in our team, no one practices TDD. Most practitioners are talking about it because they're trying to sell their courses or talks."
✅ That's a faulty generalisation. When I was working for ThoughtWorks, people around me practices TDD. It was also one of the competencies ThoughtWorks check in the interview process.
( Do you think it's useful to see my real work streamed live on a platform like YouTube/Twitch? Like this tweet so that I can consider it. )
❌ Fallacy 2: A fun workflow is fun to learn.
"Most TDD practitioners told me how fun it is to do TDD, but it's somewhat quite stressful when I tried it. TDD is not for me."
✅ Effective practices require you to push yourself outside of your comfort zone. This feeling may or may not be fun, it's subjective. Not fun could be a sign that you're practising properly!
You may find TDD fun when it's no longer outside of your comfort zone.
❌ Fallacy 3: If it's not widespread, it's not a good idea.
"We'd been talking about TDD for a long time, the fact that it's still not widespread means it's not a good idea."
✅ Not all widespread things are a good idea e.g. cigarettes.
Meditation sharpens our attention, but it's only practised by 15% of the UK population.
❌ Fallacy 4: Simple workflow is simple to adopt.
"TDD practitioners told me how TDD is a basic skill, I tried TDD for 1 week and discovered that it's slowing me down."
✅ Think about bad habits in your favourite sport that you're trying to correct, it's hard. The process of unlearning is hard in any activity.
Whilst you can see benefits faster when adopting new tools, a workflow that requires a change of habit takes patience and time.
❌ Fallacy 5: Self-confidence reflects great workflow.
"I'm confident with my current workflow. I've not seen problems with it, it works fine. I don't need to change my approach."
✅ With respect, confidence is not a reliable indicator of skill. This is a well-researched study:
The lower the ranking of the chess players, the more they are confidently overestimating their chess skills.
Collecting feedback from others or coaches is also useful.
❌ Fallacy 6: If it's not natural or intuitive, it's not a good workflow.
"I tried TDD and everything just seems backwards to me. Writing tests first is just not natural or intuitive. It's not for me."
✅ The idea of the earth being spherical was not intuitive. The idea of the earth orbiting the sun was not intuitive.
Some good ideas are not intuitive at first.
Trust your intuition less, our intuition deceives us.
❌ Fallacy 7: New era requires a new workflow.
"TDD is old and being taught by people who are 60+ years old. We now live in a new era, technology advancement renders what's been discovered outdated."
✅ Effective workflow optimises your head. Our primitive brain hasn't changed significantly, therefore what's been discovered would still be relevant for years ahead.
If you have a 'modern' well-defined workflow where you can articulate its benefit well, I'm super keen to learn.
❌ Fallacy 8: Complex problems require a complex process.
"Building software is a difficult business. There is no way a simple 3 steps loop like TDD is going to help our situation better.
Surely a great outcome requires great effort."
✅ Niklas Luhmann wrote over 70 books and 400 articles on various subjects. The amount of writing he had written is not only a matter of quantity but of quality.
When he shared his workflow, Zettelkasten, the world of writing thought it was too simplistic to be true to adopt.
The last fallacy is probably one of the reasons enterprises are looking to frameworks like SAFe to adopt Agile.
Agile is too simplistic for large enterprises.
I don't know if this thread will change your mind, but hopefully, it'll encourage you to try TDD again!