Skip to content
MERCIL

Approaches

Refactor

Improving the internal structure of code without changing what it does, so the system stays easy to change as it grows. It depends on automated tests to show that behaviour has not changed.

Part of Maintenance & Modernization

Refactoring improves the internal design of existing code while keeping its external behaviour the same. The same inputs give the same outputs, and the code is easier to read, test and change afterwards.

Why systems need it

Structural debt builds up through ordinary work. Each change makes sense on its own, but together they wear down the design until small requests take weeks. Regular refactoring reverses that a little at a time. Teams that skip it for years often end up considering a rewrite, which costs more and carries more risk.

Tests come first

Refactoring depends on automated tests. Without them it is hard to show that behaviour was preserved, so every structural change has to be retested by hand. Where coverage is thin, we add tests around the existing behaviour before restructuring the code.

How we use it

We refactor in small steps as part of normal feature work, and the test suite checks each step before the next one starts. A separate refactoring project is often the first thing cut when budgets are tight, which is why we keep it inside feature work.

When it is not worth doing

Code that is stable, well understood and rarely touched gains little from refactoring. We put the effort into the parts of the system that change most often.

Application Modernization, Maintenance & Support

Cookies on this site

We use essential cookies to make this site work and, with your consent, Google Analytics and Hotjar session recordings to understand how it is used. Forms are hidden in recordings. Cookie policy