A little late to this discussion but here's my $0.02...
I work mostly on database stuff these days, rather than application programming
so my opportunities for doing TDD are limited, and my experience with it is also limited. But I have tried to do TDD on some applications (using Python, Scala, Kotlin) and although I certainly didn't do it thoroughly (mostly just unit tests), I found it really useful in helping me to factor out the key functionality and making sure these bits worked reliably.
It's especially useful if you're working in a more functional programming style, because your functions are typically fairly small, mostly without complex side effects, and ideally re-usable. Ensuring these are testable (and tested) right from the outset means you know you can rely on these building blocks as you build up your application.
The other massive benefit is when you make changes to your code: you can fire off the tests and within a couple of minutes you'll find the unexpected consequences of your changes being displayed as errors by your testing tools. What's not to like?
So I'm no export on TDD, just another grunt developer who's tried at least some of the techniques in the real world, and I'm definitely keen to adopt TDD more consistently and thoroughly when I get the opportunity to do so.
As for the "money-making" question, I think that's a total red herring. TDD tools are free and open-source, usually well documented for free online, so there are no costs if you want to try it out. If the people who come up with these tools and the great ideas behind them can make a few dollars by selling useful books on the subject (and there are plenty of these on the market - like this one
), then good luck to them - nobody forces you to buy them, and they deserve some reward for their efforts. You get paid for your work, and so should they.
So just try it out on a real project and see how it works for you.
PS: I recently picked up this book
which looks like an interesting attempt to teach TDD and other techniques in a more realistic context. It gets good reviews
too. All I need is the time to work through it...