I saw a great talk by Corey Haines where he made the distinction between test-first and test-driven development:
Test-first: pain makes you change your tests
Test-driven: pain makes you change your code
This really got me thinking – how you handle pain in your codebase makes a huge difference in the progress you can make. Pain shows up in many ways in your codebase, but often it’s not listened to. Often a band-aid is added or only the symptoms get addressed. That will fix the problem – at least temporarily – but it doesn’t make much sense as a long-term solution.
Better to listen to what the pain is telling you and make changes to address the cause rather than the symptoms.