We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Are Rewrites always a Bad Idea? - Adele Carpenter - NDC Oslo 2024
Learn when software rewrites make sense, how to avoid common pitfalls, and strategies for successful implementation. Guidelines for making the rewrite vs refactor decision.
-
The key reasons to consider a rewrite:
- There is a desire to functionally change the application
- No small steps available to improve the codebase
- The team lacks required skills and doesn’t wish to acquire them
- The service is small with well-defined scope
-
Before starting a rewrite:
- Conduct thorough audit of current application functionality
- Look for evidence that proves rewrite is wrong rather than right
- Treat initial phase as discovery/feasibility study
- Be prepared to walk away if scope is larger than expected
- Break rewrite into smaller deployable chunks
-
Avoid common pitfalls:
- Resume-driven development (choosing new tech just to add to resume)
- Assuming predecessors made poor decisions
- Underestimating complexity of existing system
- Taking on too large a scope
- Not delivering value early
-
Successful rewrite approach:
- Use strangler fig pattern for gradual replacement
- Keep tech stack choices aligned with team expertise
- Focus on consistency over perfection
- Get early user feedback
- Document thoroughly including “todos” and loose ends
-
Key considerations:
- Rewrite must solve actual user pain points
- Team skills and preferences matter more than “best” technology
- Small, well-defined scope is crucial
- Early stakeholder buy-in through quick wins
- Leadership and communication are as important as technical skills