Tech, ExplainedCloud platforms and developer tools
Product

Application dependency mapping

How an old system's parts really connect.

BEFORE ITAFTER ITApplicationdependency mappingCASTCOVERSCode readingDependency mapFragile partsDead codeCode repositorysupplies thesource codegives contextfor rewritesAI coding agent↗ AI CODINGBEFORE ITAFTER ITApplicationdependency mappingCASTCOVERSCode readingDependency mapFragile partsDead codeCode repositorysupplies thesource codegives contextfor rewritesAI coding agent↗ AI CODINGBEFORE ITCode repository↓ supplies the source codeApplication dependency mappingCASTCode readingDependency mapFragile partsDead codeAFTER IT↓ gives context for rewritesAI coding agent↗ AI CODING
The mapping tool reads the insurer's source code from the repository, draws which of its 3,200 programs depend on which, and gives the map to an AI coding agent.
opens a page inside this one a page in the same scene a page in another scene a concept page a label only, with no page

Application dependency mapping is software that reads every part of a large, old system, in every language and layer, and draws how its parts fit together and where they are fragile. It is also called software intelligence or application discovery. Companies use it before they move an old system to new technology, or before they rebuild it. The industry calls such old systems legacy systems.

Why is this so hard to know? A system that has run for 25 years may hold millions of lines of code. It may mix COBOL programs on a mainframe, Java programs, procedures stored inside the database and screens written in older languages. The people who wrote it have often retired or left. The documents, if there are any, are out of date. Nobody knows for certain which program changes which data.

The mapping tool reads the source code from the code repository, together with the database definitions. It follows every call: this screen calls this program, which calls that program, which writes to this table. It then draws a map. The map shows each part, which parts depend on it, and which parts are risky to touch. A part is fragile when many others depend on it, or when its code is very complex and has no tests.

Consider a public-sector insurer in Kolkata that wants to replace its policy system. The system has 3,200 programs and 900 database tables. Before anyone writes new code, the team runs the mapping tool for two weeks. The map shows that one program, which calculates the premium, is called by 410 other programs. It shows 37 programs that write directly to the main policy table, many more than the team expected. And it shows 600 programs that nothing calls any more. This dead code does not need to be rebuilt at all. With the map, the insurer splits the work into 12 smaller projects. It moves the premium program last, with the most testing.

Mapping matters even more when AI does part of the work. An AI coding agent can rewrite a program quickly, but it needs to know what else depends on that program. The map gives it that context. Banks that replace their old core systems face the same question, as the page on core banking modernisation explains.

How is mapping different from developer productivity metrics? Both look at code from above. Mapping studies the structure of the system. Productivity metrics study the changes that engineers make to it.

Tech, Explained is a part of ingrid.fyi. Every page explains one piece of technology in plain words.