The cost of a software cannot be evaluated only based on its development, but also on its maintenance over time.
Last but not least, the TDD plugin has a huge advantage over its competitors: it has tests!
Right, guys, TDD has more than two hundred unit tests that ensure almost a complete code coverage (greater than 95% in this case).
It’d seem that TDD developers spend half of their time writing and running tests according to TDD practice, and it might also seem like TDD requires twice as much work as the traditional approach (since you have to write the tests AND the features), but at the end of the day, the time spent writing tests results in a set of repeatable and automatic test suites that can be run at your convenience, preserving you from potential regressions and allowing you to refactor your code safely. On the contrary, all the time spent on debugging would simply be wasted (as someone once said: “All those moments will be lost in time, like tears in rain”) .
Your debug sessions, in fact, are arduous to repeat with the same conditions. You may have changed the environment where your code is running or, most likely, you had to change the code itself, fixing some wrong behavior (and breaking something else), especially if you are addicted to the bad practice of Debug Driven Development.
When code is complicated, it gets much harder to get anything done, and, at some point, no one wants to touch it, because even a minor code change could lead to an unpredictable effect.
On the contrary, by following TDD, developers are able to painlessly update their software to address new requirements or other unforeseen variables while being quite confident that no part of the code will be broken.
As the developers saying goes, “time saved is equal to money earned”.