"Take a test-driven approach, and your engineers will better design software and engage in risk-free refactoring. […] TDD solves a different set of problems. It does so by proposing that before you write any nontrivial piece of production code, you write tests that the code will at first fail, and then when written correctly, will pass. TDD advocates say this approach has two major benefits."
I’ve worked like this in all the projects I’ve been involved in. I had no idea this wasn’t more widespread practice.