A core system is reliable, undocumented and staffed by people close to retirement. What do you do first?
Show the full answer Hide the answer
What is being tested
Whether you deliver value early rather than starting a multi-year replacement.
What to do first
Encapsulate. Put a modern API in front of it and leave the core alone.
This delivers immediate value — new services can be built without touching the core — costs little, and is reversible. It also buys time to understand the system before committing to anything larger.
It does not address the skills or cost problem, which is why it is a first step rather than a strategy. But starting with a two-year replacement programme before understanding the system is how these fail.
Alongside encapsulation, in parallel
Capture the knowledge while the people are still there. This is time-limited in a way nothing else is. Record the behaviour, the undocumented rules, the operational procedures and the reasons behind the oddities. This is genuinely urgent and it is routinely deferred.
Build the anti-corruption layer properly, enforced by a build check. If mainframe semantics — packed decimals, fixed-width fields, peculiar status codes — leak into new services, eventual replacement means touching everything, and the programme's second half costs more than its first.
Serve reads from a projection populated by change capture or batch extract, so new services are not constrained by the core's availability, performance or batch window.
Then, selectively
Strangle by capability, behind the routing facade, with run-and-compare against the old system for every reimplemented slice. The old system is the specification, because the requirements exist nowhere else.
Sequence so every step delivers value and is safe to stop after, because these programmes are frequently paused or cancelled.
What not to do
A full rewrite, which is the historical pattern of failure for these systems.
Automated code conversion as an end state, which produces code with the structure of COBOL in a different syntax, maintainable by nobody — the skills problem in a new language.
Assuming it must all be replaced. Some parts may reasonably remain indefinitely, and saying so early makes the rest of the programme fundable.