Let's just state upfront that the topic of Test-Driven Development can and will cause polarizing responses among software Development Teams. People either love it or hate it.
I believe much of the controversy is caused because we fail to see TDD for what it is: a specification-driven test harness for designing and writing more straightforward software. TDD packs so much punch in the Agile community because it encourages a mindset of building what is necessary and nothing more.
Simple software is easier to maintain, more robust, easier to scale, and lacks technical debt or feature bloat. If Scrum is a set of training wheels for better software delivery, TDD is the training wheels for better (simpler) software design. ...