April 15, 2016

...Learn TDD with Codemanship

The Rise & Rise Of Test-Driven Development

As an advocate of Test-Driven Development, having practiced it myself for most of my professional career and seen what results are possible - both in terms of software quality, and the economic benefits of simple, maintainable code that's always shippable - I'm keen not to ram it down the throat of anyone who simply isn't interested in doing it.

TDD is not compulsory. Do it. Don't do it. We can judge the end result on the - er- end result.

But I would be remiss, to developers who care about their careers and want to keep up with the ever-changing demands of employers, not to point out that - although TDD isn't compulsory - it is rapidly becoming de rigeur.

It took a long while for TDD to enter the mainstream, but since about 2006-7, demand for developers who can do it - or at least claim they can do it (that's a whole other blog post right there) - has been showing pretty strong, consistent growth. In 2006, almost no employers asked for TDD on a candidate's CV. In 2016, about 1 in 5 developers jobs advertised in the UK requires it.

That trend shows little sign of slowing, so it's entirely possible that in 10 years' time half the developer jobs going will require you to have TDD skills and experience. And the other 50% would probably be jobs you really don't want to apply for.

The demand for TDD skills and experience is further evidenced by the fact that the average pay for a developer with TDD is 10% higher than without.

So, yes, TDD isn't compulsory. But organisations are increasingly viewing it as a foundation for cool stuff they really want, like Continuous Delivery. Keeping your code in a continuously shippable state requires the ability to regression test it quickly, cheaply and very frequently. One of the neato side-benefits of TDD is - when done well - good, fast-running automated regression tests.

And yes, you could write those tests after you've written the code if TDD's not your cup of tea. But - guess what? - I've found that teams who tackle test automation after the fact have a tendency not to be anywhere near as thorough, leading to lower confidence that the code really does work.

A straw poll on Twitter I did a couple of days ago found that only 4% of respondents didn't already know how to do TDD, and had no plans to learn. It's a self-selecting audience, of course. But even in my social media echo chamber, 96% is significantly high.

TDD already crossed the chasm, and now it's waving a 10% pay rise at you from the other side.

Posted 1 year, 6 months ago on April 15, 2016