2023-06-14 · Implementation
Lessons from rewriting a legacy jQuery dashboard
We replaced 8,000 lines and shipped fewer features than planned.
Introduction
A postmortem on a strangler-fig migration: what we froze first, what we rewrote first, and the three regressions nobody saw coming.
Why this keeps coming up
Every Implementation conversation eventually lands on the same tension: what is comfortable for the team today versus what the project will need in a year. Neither side wins by argument alone.
A way to think about it
- Defaults outlive intentions — design them deliberately.
- Decisions are cheap to make and expensive to communicate; budget for the second part.
- Disagreement is data. Write down what would change your mind.
What I would do
Start smaller than feels useful, write the reasoning in the commit or the RFC, and revisit it on a calendar date rather than a feeling.
Closing thoughts
Taste in Implementation is mostly memory. Collect yours on purpose.