What is Refactoring vs Rewriting? — UK Software Development Guide
Direct Answer
Refactoring is improving existing code's internal structure without changing its external behaviour. Rewriting (or rebuilding) means starting from scratch with a new codebase, abandoning the existing implementation. The choice between refactoring and rewriting is one of the most important — and most contentious — decisions in software engineering.
Refactoring-vs-rewriting in the UK
The "big rewrite" is the most common expensive mistake in UK software development. Joel Spolsky's famous 2000 essay "Things You Should Never Do" argued that rewriting discards accumulated business logic embedded in the old codebase — often irreplaceable. UK legacy system reality: 80% of the time, incremental refactoring (using the strangler fig pattern) is safer, cheaper, and less disruptive than a full rewrite. ClickMasters recommends rewriting only when: the codebase is so poorly structured that incremental improvement is impossible, the technology is genuinely end-of-life with no security patch support, or the business logic is so well-documented that reimplementation risk is low.
Related Glossary Terms
Microservices
Microservices explained for UK software developers and business owners. Microservices architecture is a software design approach where an application is built as a collection of small, indepen... UK context, examples, and related services.
React
React.js explained for UK software developers. React (also known as React.js or ReactJS) is an open-source JavaScript library developed by Meta (formerly Facebook) for... UK context and related services.
Technical-debt
Technical Debt explained for UK software developers. Technical debt is the implied cost of future rework caused by choosing an easy solution now instead of using a better ap... UK context and related services.
Legacy-system
Legacy System explained for UK software developers. A legacy system is any software, hardware, or technology that continues to be used despite being outdated or superseded ... UK context and related services.
Redis
Redis explained for UK software developers. Redis is an open-source, in-memory data structure store used as a database, cache, and message broker. Unlike disk-based...
Ddd
Domain-Driven Design explained for UK software developers. Domain-Driven Design (DDD) is a software design approach that focuses on modelling software around the business domain i...
Get Expert Advice on Refactoring-vs-rewriting
Speak with our UK software development experts about Refactoring-vs-rewriting. Free consultation, transparent pricing, no obligation.