Sometimes when the next User Story is to be implemented it is obvious that an existing object may need structural change or a new object should be created. The perceived need for refactoring is discussed with the full team. If confirmed the refactoring proceeds.
Where an existing object is being restructured the new FACE is agreed and may be published.
A pair begins on the new code and changes the test harnesses.
The existing code or functionality is moved to the new object. The new functionality is not included as yet.
When unit testing is complete the pair changes all invocations and runs the integration tests. Yes, pairs can run the integration tests in their environments!
The code changes are then published.
Then the new functionality is added and the normal sequence of code/test and publication takes place.
This approach ensures that the minimal code is always delivered for the next release.