Unless you work on a big company where you're just a small cog in the machine and your work doesn't matter much, you will be defeated and destroyed by folks who move much faster at building and fixing things in this rapidly changing world. By the way Android OS wouldn't exist , if the amazing team have used TDD rather than just focusing on building good quality product and moving really fast
Nah. I've done a startup where we did TDD and pair programming (with frequent pair rotation) for all production code. We were incredibly productive. High code quality and good tests mean you get to spend way less time on mysteries and bugs. Aggressively refactoring the system means you end up with flexible, composable units that make it easier to keep up with rapid changes.
It's basically the same deal as cooking. Can I go faster if I dirty all the pans and don't worry about cleaning up? For a little while! And after that, productivity and quality drop. There's a reason that professional chefs are big on "working clean". For those interested, there's a book with a lot good interviews with chefs on their work practices. I think a lot of it translates to software: https://www.workclean.com/
The Android OS is OK from my personal experience. I wouldn’t brag about it. Now Android App development is by far one of the worst experiences I’ve had the misfortune of having, and I repeatedly thought how everyone involved with the design of those APIs ought to be fired. Maybe they should have been using TDD!
When things scale in complexity, TDD is the reason why people can move fast. I suggest reading about extreme manufacturing. TDD is not only for software.
Our company is intentionally small, we have been around for over 10 years, we move fairly fast to address needs in our market segment, and we have been doing mostly TDD for years.
I highly recommend writing automated tests to guide what you do even for small companies. Perhaps especially for resource constrained ones, when every hour spent working is hard earned.