The compiler doesn’t care whether the code is ugly or clean. But when we change the system, there is a human involved, and humans do care.

A poorly designed system is hard to change. Hard because it is hard to figure out where the changes are needed.

If it is hard to figure out what to change, there is a strong chance that the programmer will make a mistake and introduce bugs.

Martin Fowler, in Refactoring

When I’m trying to add some new functionality, I’m not worried about what really makes a good design for this piece of function, I’m just trying to get a test to pass as easily as I can.

When I switch to refactoring mode, I’m not worried about adding some new function, I’m just worried about getting the right design.

With both of these I’m just focused on one thing at a time, and as a result I can concentrate better on that one thing.

Martin Fowler in the Afterword of the book TDD by Example