I've been watching developers learn TDD for 25 years, and I have a reasonable ballpark on what it takes.

Roughly 1,000 red-green-refactor-commit cycles for the "rules" to become habits, and to scale the learning curve enough to make TDD work in practice on everyday code bases.

If you progress from regular practice (e.g., 2 hours a week) to TDD-ing on most of your code (10-15 hours a week, apparently), you're looking at 4-6 months.

And that, folks, is why "We tried TDD and it didn't work"

@jasongorman for the regular practice, would you rather repeat the same kata over and over again, or switch every week?
@flooper I think it's worth mixing and matching - new problems as well as trying to do problems again better, and working towards the kinds of problems you see in your own day-to-day work.

@jasongorman I personally like the mindset of it, define the behaviour first.

Even if I don't follow it strictly, I think it's really useful to push for it, even if just to make the code more testable.

@Sh41 @jasongorman that’s how I like it. I have to put boundaries on what I’m doing in advance otherwise I get overexcited and overengineer as I’m writing the implementation
@rahoulb @jasongorman I use KISS, YAGNI and emergent architecture as the means to keep overengineering under control
@Sh41@androiddev.socialyeah, that’s what I tell myself - then my stupid brain takes over, six hours have passed and I’ve created a monster 😇
@jasongorman could you point me to any suitable websites or docs outlining the basic concepts of TDD? Where’s a good place to start?
bliki: Test Driven Development

a bliki entry for Test Driven Development

martinfowler.com
@kid22 @jasongorman The reality is the best way to learn TDD is by pairing with someone experienced in the practice.
Local user groups or meetups are a way of finding someone.
@kid22 @jasongorman Jason is a fantastic trainer. I took his 2-day TDD workshop and it has given me the perspective / starting point I was missing and it has helped me to start coach other colleagues. I would start by checking out his videos on YouTube and the materials in his web
@kid22 @jasongorman I’m also a big fan of @emilybache . You can also check out her videos and her website

@jasongorman How much would you cry if I said I tested it by seeing if it compiles?

(don't worry, I'm joking ☺️)

@jasongorman 4-6 months is quite an investment to just see if it works, isn’t it? I’d expect of any methodology to be able to answer that much faster. I mean, I’d expect there to be a long period of “it works but it’s hard” before it becomes a habit.

Let me give an example. Do you know anyone who invested 4-6 month into AI before they said it works/doesn’t work?

@floehopper

@pointlessone @floehopper "AI" isn't a skill
Generative AI runs on gambling addiction — just one more prompt, bro!

You’ll have noticed how previously normal people start acting like addicts to their favourite generative AI and shouting at you like you’re trying to take their cocaine away. Matthias D…

Pivot to AI

@jasongorman Fair enough. Still the original point stands. Usefulness should be apparent way before it becomes a habit.

@floehopper

@pointlessone @floehopper It does. Most people get what the benefits would be after trying it a couple of three times. But, like so many good habits in life (like pushups), we'll be disappointed if we expect to see immediate results.

@pointlessone @jasongorman @floehopper The 4-6 months would be to fully internalize the mindset and making it the default habit.

“Understanding the value”, on the other hand, can happen very quickly. In just a couple pair sessions with a junior, they were convinced when our tests enabled doing a major refactoring safely with confidence; where untested that change would have easily taken days because of system complexity.