Why ActiveResource will flop...

Robert James wrote:

How would you feel if your GUI app broke every time I refactored?

This is a Frequently Asked Question regarding the interaction between Agile development and published interfaces.

The answer is to apply more of the Agile development practices - specifically Customer Tests. Each feature your customer wants, you deliver it with a suite of Acceptance Tests that lock down the feature's specifications. Done right, your customer should author these tests, or at least review them.

So if your customer wants a web service, they get a set of tests specifying that web service's published interfaces. You are now free to refactor all you like. If you break any test, you revert and try to refactor again.

BTW "Refactor" doesn't mean "code-and-fix with your design". It means "change the design while passing all its tests". Re-read all the verbiage about refactoring with that in mind.