I've been extending a legacy codebase lately to make it a bit more testable, and a few small, bad decisions have slowed my progress immensely. One decision isn't bad in and of itself, but a small bad decision multiplied a hundred times leads to significant pain. It's death by a thousand cuts...