Today I got news about one fix we did, "We have to revert your changes, there's a new scenario we didn't know about.". This wasn't cool but happens on large businesses, as consultants we have to deal with it. But I was thinking about it and I remembered that we, even removing the feature, improved the code.
At first the code was static and without tests, as a ThoughtWorker would be a sin try to change the code without testing it. So we spent almost half of the iteration trying to find a way to test the code, after while and some refactoring we got some tests and then we started code the new feature, in fact, the feature was just a small piece of code (7 lines of code).
Now I had to revert the feature, but guess what, the feature has only 7 lines, the testing and the refactoring didn't need to be reverted. So, even having to go back on the "visible" value we added, still we left value on the code base, not all was lost. Things like this happen when you're in consulting, but keep in mind that good practices will always deliver value. Bas practices, specially in this case, will not.