Craft a software without TDD is like jumping from an airplane without parachute. In this 2nd decades it is a shame that software developer still prefer avoid TDD and relay the quality only on testers.
Example about Software craft with TDD are everywhere. Eric Elliott in his article https://medium.com/@_ericelliott/40-80-more-bugs-in-production-6c4d6d55edae?source=linkShare-47fe31a0cbe9-1481342026, mention that a software made without TDD, is 40–80% more bug in production.
People argue that Craft software with TDD is much longer than make a software without. While you craft a software with TDD, you provide several features that otherwise would take much longer to do:
- You document your code by the test
- You design a simple stupid code, easy to maintain
- Your code is testable
- Your code is easy to maintain, a fix, an improvement is not anymore a pain.
Avoiding to craft with TDD, mean:
- Writing unit test after take much more time, as your code is not design to be simple and testable.
- You don’t have test that explain to the reader the behavior expected
- You don’t have any protection in case you need to change your code. So you avoid making any changes.
- Fixing a bug mean a lot of log session to found the issue.
I could come probably with many more reason.
People will argue that it is hard to sell TDD to your customers?? Common do you sales to your customers the time you are debugging? Are you asking your customers if you have the right to design a proper architecture and test your work? Is your customer say to you how you craft your software?