>Refactoring<p>I hate refactoring, but I <i>love</i> architecting and making sure the architecture withstands future needs, and most times a refactor is required in the middle of a project. I'm in the midst of refactoring a project right now to detach the core logic from the configurable bits so other devs can use the tech without having to learn how to tweak each and every part.<p>It's awful, and it's wringing every last drop of pleasure and energy from my mind and body, but it's necessary. It's even worse when others think you're doing less work when really the project will end up a specialized wasteland otherwise because oncoming developers would have to learn every single function in every single file just to extend it, or, worse case, the few devs who originally worked on it will become "the X devs" who are called in anytime a new request has something remotely to do with the project.<p>It saves lives and careers, literally, but it's a thankless job.