I'm currently contracting for a company who use XP (Extreme Programming) a lot.

We are developing Java-based web applications (using Java on the server side, NOT client side).

Refactoring is a major part of XP, being able to refactor safely.

---

As a development tool, we're using Eclipse. Its support for refactoring is extensive. In the Java perspective, click a class, choose "Refactor->Rename", you can rename a class in one simple operation.

The editor has built in refactoring too. It enables you to instantly pull expressions into local variables with a mouse-click etc.

Of course with all refactoring operations, this tool automatically searches for other methods / classes which depend on the refactored object(s), and updates them accordingly to use the refactored versions.

This is a good time-saver. It makes you not worry too much about giving things the wrong name or structure, because it's so easy to change.

Additionally, it's worth mentioning, that you have to use a source-code management system which allows you to modify files without first locking them.

In any case, with XP, your pair should be working in sufficiently short cycles that everything is committed at the end of the day (or perhaps lunchtime) - all tests working.

Slarty