I am heartened by the surge in TDD training. To me, TDD is the second most important thing for devs to learn. ATDD is the first.
TDD is not just the automation of unit testing. It’s also intended to improve design and sustainability.
TDD’s formulation of tests, prior to code, drives design. High quality code is easy to test. The reverse is also true. Code that is easy to test is higher quality than code that isn’t. I labeled this quality, “testability,” in my book Design Patterns Explained. Test-First is a process where deciding on your tests before writing your code improves your design. Continue reading “Test-Driven Development (TDD): The First Leg of Emergent Design”