Veltos.Tech

Development

Legacy code

Also known as: legacy system, inherited codebase, outdated codebase

Definition

Legacy code is working code that is expensive to change: it runs on an outdated stack, has no test coverage or has lost its authors, so every edit means reconstructing the logic from the source and risks breaking something unrelated.

It helps to separate legacy from merely old. Ten-year-old code with tests, documentation and maintained dependencies is not legacy: people change it calmly. Conversely, a project written eighteen months ago with no tests, by a team that has since dispersed, on an unmaintained framework fork, is textbook legacy. The defining marker is the cost of a safe change. If fixing one button takes a week of archaeology and two weeks of chasing regressions, it is legacy regardless of the first commit date.

In the Russian context legacy carries an extra layer. Some systems are tied to products that left the market or stopped receiving updates: licences lapsed, security patches became unavailable, payment and analytics SDKs went dark. That code stops being merely inconvenient and becomes a risk, operationally and in regulatory terms if the system handles personal data or belongs to critical infrastructure. There the modernisation decision is driven by requirements rather than by taste.

The standard mistake is demanding a from-scratch rewrite immediately. A full rebuild means months without new functionality, a repeat of every mistake the old system already survived, and a high chance of never finishing. The working approach is usually different: wrap the critical paths in tests, freeze the old code, and build new functionality outside it, gradually routing traffic across. A rewrite is justified when the stack is fundamentally unsupported, when security requirements are broken beyond repair, or when maintenance already costs more than a new system would.

Related terms

Related services

Read more

Need this done, not just defined?

We do this work, not only write about it. Describe the task and we will scope it and send a staged estimate.