Write tests before making code
Have automated tests that you make before making production code
Can help with the flow and API design
Code becomes more testable