These learning hours are all about how the need for both testability and the ability to refactor easily affects your design choices. One of the biggest reasons people give up on TDD is if they lack the design skills to do it.