As written above, refactoring is the most important phase of TDD loop. This experience of using TDD with XSLT has shown that refactoring tools provided by Oxygen are limited, and they can be enhanced to provide high level helpers. Other IDE, like IntelliJ or Eclipse, provide very advanced refactoring tools, and this tools allows developpers to be much more efficient. For example, when we rename a function, all code that calls this function is updated to take in account the rename. But Oxygen has already this refactoring operations, some implemented in editor, like move XML element, which fits with slide statement[Refactoring Slide Statement], some from the Refactoring menu. Users probably need to challenge Oxygen team to enhance these refactoring operations.

Refactoring is the phase where design emerges. When we see many corks written one after the other, we see what we have to do to introduce the right design, or the right patterns to eliminate duplications and to simplify the code.