I\'ve heard that projects developed using TDD are easier to refactor because the practice yields a comprehensive set of unit tests, which will (hopefully) fail if any change has
Kent Beck's TDD book.
Test first. Following S.O.L.I.D OOP principles and a using a good refactoring tool are indispensable, if not required.