Design Improvement (Refactoring)


XP teams deliver business value from the beginning of the project. For teams to continue delivering value, the design of the system must evolve and improve over the course of the whole project. The process of improving the design of existing code is called refactoring.

Is Refactoring Essential?

Refactoring is essential. If a project is to deliver business value from the beginning, the design must be kept clean. This requires continuous design improvement implemented by refactoring. The only way you can avoid the need for refactoring is to be omniscient and perfect. And so few of us are… .

It is possible to do too much refactoring. The best way to avoid that is to refactor very frequently and to focus your refactoring only on code for which you have a story. Spend very little time looking for places to refactor that aren't currently the subject of the customer's attention.

It is also easy to do too little refactoring. When you do too little refactoring, new features become harder and harder to put in. The project slows down. This means that a slowdown in velocity may indicate that you are doing too little refactoring. There are other possible causes for slowdowns, such as insufficient testing, which is often associated with increasing bug lists or rework requests.

Paradoxically, if you can directly measure the amount of time you're spending on refactoring, you are very likely doing too little. Refactoring should be such an intimate and moment-to-moment part of programming that you scarcely notice that it's happening.



Extreme Programming Perspectives
Extreme Programming Perspectives
ISBN: 0201770059
EAN: 2147483647
Year: 2005
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net