All insights
EngineeringMaintenance5 min read
The framework migration that worked
Most major framework migrations end in disaster or rollback. The rare ones that succeed share a pattern that has nothing to do with engineering hours.
If you've watched a team try to migrate frameworks — Rails 4 to 6, AngularJS to React, Express to Next — you've probably watched it stall, drag, partially complete, or quietly revert. The ones that finish have done something different.
What works
- Strangler pattern: the new framework owns new code; old code migrates piece by piece.
- Compatibility layer that lets both run side by side for months, not days.
- A single owner who is genuinely accountable for completion.
- Explicit deadlines for each phase — and consequences when they slip.
What doesn't work
Big-bang rewrites. Trying to migrate during a feature freeze. Letting every team do it on their own timeline. Each of these turns into a multi-year half-migration that's worse than either of the two endpoints.
A migration without a deadline isn't a project. It's a permanent fork in your codebase.