Writing Tests First Changed How I Design

I resisted TDD for years. It felt slow and backwards. Then I tried it properly for a month and something clicked. When you write the test first, you’re forced to think about what your code should do before you think about how it does it.