I don’t agree with Bob Martin. You can be a respectable, professional developer, and NOT do TDD. And… This is NOT a TDD rant.

I happen to practice TDD. I like the rhythm of it. I find it helps me make sure my code meets requirements. I also like the way it helps me think through design decisions.

Several of my colleagues don’t practice TDD. And, you know what? They write good code. Their code is readable. It’s maintainable. It meets the requirements. And, their bug density is pretty low.

I’m not advocating that anything goes. There’s a reasonable amount of research that shows strong correlations between specific practices and software quality outcomes. TDD is one of them. Code reviews are another. For a more in-depth discussion of different software quality practices see this article.

My point here is:

When we get caught up in dogmatism, we loose sight of what matters.

What really matters?

Writing good code.

Working efficiently.

Enjoying our work (which significantly impacts the two items above).

*That* is More Important Than *How*

How you do this is not as important as that you find a way to do it. In fact, having a variety of development methods in the industry is a good thing. It means that people are experimenting, discovering and innovating. It means you have choice and diversity — opportunities to learn, grow and improve.

We need people:

pushing the boundaries,

trying out new ways of doing things,

falling flat on their faces,

In short — learning.

The Right Question to Ask

If you decide to adopt an existing methodology, it’s not important that you follow it to the letter. I can’t count the times I’ve heard criticisms that someone isn’t doing Agile, or TDD, or whatever right. Whether you’re doing it right is simply the wrong question to ask.

What are the right questions?

Is the process working for you and your team?

Is your product’s quality good enough?

Does your process bring you joy — or at least not bring you pain?

Listen to Yourself, But Learn from Giants

There are a ton of great processes and practices out there. Many of these have strong evidence to suggest they are helpful. Look into them. Methodologies that have staying power get attention for a reason.

Go forth. Code well. Get curious. Find joy.