Refactoring Without Fear
Build comprehensive test suites so you can refactor code without fear of breaking it. This safety net enables you to work more quickly and adopt a more experimental style of changing software. It will give you the confidence to improve existing code and discover immediately if something breaks in the process. Missing tests are like holes in your safety net and bad assertions equate to broken strands. Building mature test suites will increase both agility and speed to market.