One of the hardest decisions in any system is knowing when to keep fixing something and when to replace it entirely.
At first, fixing makes sense. It’s faster, cheaper, and less disruptive. You patch the issue, move forward, and keep things running. That’s how most systems evolve in the early stages.
The problem is that small fixes accumulate over time.
Workarounds become permanent. Temporary solutions turn into standard practice. Complexity increases. Eventually, the system requires constant attention just to function. At that point, you’re no longer maintaining a system—you’re supporting a problem.
The challenge is recognizing when you’ve crossed that line.
If the issue is isolated and well understood, fixing is usually the right choice. But if the problem is structural—affecting multiple parts of the system—fixing tends to make things worse. Each new fix adds another layer of complexity without addressing the underlying issue.
Another signal is repetition. If the same problem keeps coming back, the system itself is likely flawed. You’re not solving the problem—you’re managing its symptoms.
There’s also the cost of friction. Even if something technically works, it may be slowing everything down. Extra steps, confusion, delays, and mistakes all carry a cost, even if they’re not immediately visible.
Replacing a system feels expensive because the cost is upfront. Fixing a broken system feels cheaper because the cost is spread out over time.
In reality, the long-term cost of keeping a broken system is often higher.
The goal isn’t to preserve what exists. The goal is to create something that works—and keeps working without constant intervention.

