Refactoring to a Happier Development Team
blog.fogcreek.com
blog.fogcreek.com
If you're throwing away a lot of your tests, that's generally a sign that your tests and your code are too tightly coupled.
I think that's the point. These are tests written specifically to help with the transition from the old to the new code. They are pretty tightly coupled to both versions in that sense. Once the old code is gone, they are really only testing the new code, so you throw them away.
Interesting opinion. However I cannot agree with this part that tries to justify having a personal agenda and putting it above the company's mission. Unless you're fighting an executive level fight (probably not a good idea then either) there's no good reason to exaggerate stories about technical debt unless it forms an immediate impediment. You might end up being the one who killed your company.
On a typical day, you don't vary the quality of output to match the deadline. The deadline should adjust to accomodate the amount of time it'll take you to complete the feature at the quality level you deliver.
There should be no problem refactoring code in pursuit of building a feature or fixing a bug. If you're refactoring unrelated code, that's where it gets a little dicier.
If an extra day to clean up your code is an issue, your company is already dead. What if you have to push it back a day because you get sick?
"We were charged with increasing the happiness and productivity of the engineering team."