Back to blog
    Migration30 June 2026

    How to Map Legacy System Dependencies Before Migration

    Legacy systems rarely work in isolation. By the time a business decides to migrate one, it has typically been in operation for years, accumulating connections to databases, integrations with other tools, business processes that no one ever documented, and infrastructure dependencies that only one person in the organisation remembers. Start the legacy system migration without understanding those connections, and you will discover them the hard way.

    A finance team that is unable to access its nightly reports on the first day; a warehouse that stops printing pick lists due to a scheduled task on a decommissioned server; and three departments that were unaware that they were pulling data from the same database as the system that was recently relocated, resulting in a lack of data the morning following the first migration phase. These might seem like edge cases, but in reality, they are the predictable consequences of migrating without a dependency map.

    This guide covers what dependency mapping involves, the five types of dependencies to look for, and a practical five-step process for building the map before the migration begins.

    What Is Dependency Mapping?

    Dependency mapping is the process of documenting all the connections a legacy system has to other systems, databases, business processes, users, and infrastructure, so that a migration can be planned with a clear understanding of what will be affected and in what order.

    Editorial diagram of a central legacy system connected outward to five dependency nodes — Data, Integrations, Users, Processes and Infrastructure — on a dark navy background with mint accents
    The five types of dependencies that surround every legacy system — data, integrations, users, processes and infrastructure.

    What Is Dependency Mapping (and Why It Matters for Migration)

    Think of a legacy system like the plumbing in an old building: before any renovation work begins, a competent contractor will map where the pipes run, which walls are load-bearing, and where the electrics are buried. If that step is skipped, the renovation turns into a series of expensive surprises.

    A legacy system sits at the centre of a web of relationships: some documented, most not. Data flows in and out, other systems depend on it, business processes have grown around it over years, and underneath it all, there's infrastructure. A dependency map makes that web visible before anything is disturbed.

    Martin Fowler's Patterns of Legacy Displacement describes this as finding the right seams in the current business and technical architecture, and understanding how one large technical solution meets multiple business needs. The NCSC's guidance on identifying critical assets makes the same point from a security perspective: knowing which systems are connected, their dependencies, who has access, and who manages each component is critical to recovering from incidents and managing risk effectively.

    For a migration, the dependency map determines several critical points: what will break if the system is taken offline, which integrations need to be rebuilt, which business processes are invisible in the code but critical to operations, and what a realistic timeline and budget actually look like. Most migration projects that run into trouble do so because one of these was unknown at the start.

    The 5 Types of Legacy System Dependencies

    Infographic titled '5 Types of Legacy System Dependencies' listing data, integration, process, user and infrastructure dependencies, each with a short example, on a dark navy background with mint-green numbered markers
    The five types of dependencies to identify before any legacy system migration begins.

    1. Data Dependencies

    Legacy systems frequently share a database with other applications. This pattern was common in older architectures, and it creates significant migration complexity. A legacy CRM and a billing system both reading from and writing to the same SQL database is a data dependency: even though billing has never been touched, the billing system would break when the CRM is migrated to a new data structure. Identifying shared tables, shared schemas, and shared data stores is the first priority in any legacy data migration exercise.

    2. Integration Dependencies

    Integration dependencies are the connections between the legacy system and external or internal systems: APIs, file-based exchanges (SFTP, CSV imports and exports), webhooks, direct database connections to third-party systems. These are often poorly documented, particularly in systems built before modern API standards became common, and they are central to any legacy system integration review.

    Imagine there's a scheduled CSV export that runs every night and is picked up by the finance team's reporting tool — that is an integration dependency. It does not appear in any formal documentation, and the finance team calls it "the file that arrives every morning." If the migration removes the process that generates it, the file no longer arrives.

    3. Process Dependencies

    Process dependencies are business workflows that rely on the legacy system but are not reflected in the code or documentation. This is undoubtedly the most underestimated type of dependency.

    Think about a warehouse team that prints pick lists from the legacy system at 7:00 every morning — that is a process dependency. The system generates the list; the team collects it; the day's work is organised around it. None of that is documented anywhere, but if the migration eliminates the pick list function without taking this workflow into account, the warehouse will stop working the morning after go-live.

    4. User Dependencies

    It's quite common for various groups within the same organisation to use the same system in different ways: a sales team applies it to enter orders, a finance team runs end-of-month reports, and a warehouse team checks stock levels. To comply with the specific needs of each team, the migration timeline has to account for their critical usage periods: finance's month-end, sales' peak ordering, and warehouse shift changes.

    5. Infrastructure Dependencies

    Infrastructure dependencies are the technical components that allow the system to function: the operating system and server configuration, the version of the runtime or database engine, scheduled tasks, Windows services, certificates, and software licences.

    A legacy system running on Windows Server 2012 with a Windows Task Scheduler job that executes a nightly calculation at 2:00 am has infrastructure dependencies that will not automatically transfer to a new environment. The application can be moved, but if the scheduled task is not recreated, the nightly calculation will cease to operate, though the consequences may not be visible until the following morning.

    A Step-by-Step Process for Mapping Dependencies

    Vertical flow diagram showing a five-step dependency mapping process: interview daily users, trace data flows, document integrations, map infrastructure and jobs, and visualise and prioritise, with mint-green numbered markers on a dark navy background
    A five-step process for building a dependency map before migrating a legacy system.

    Step 1: Interview the People Who Use the System Daily

    Do not start with the code or the documentation. For most legacy systems, the documentation is either absent or out of date, and the code fails to capture process or user dependencies.

    Talk to representatives from every team that touches the system. Ask what they use it for, what their daily or weekly routines involve, and what would happen to their work if the system were unavailable for an hour, a day, or a week. Ask specifically about anything they do manually, as these processes are where the invisible dependencies hide: exports they run, reports they print, and files they send.

    Step 2: Trace Data Flows In and Out of the System

    Follow the data: where does it come from, and where does it go? As the Revert to Source pattern in Fowler's legacy displacement work observes, tracing the originating sources and sinks for key data flows is a core requirement of any legacy displacement effort, not an optional preparatory step.

    It's best to check which databases the system reads from and writes to, and which other systems connect to the same databases. Look at scheduled imports and exports, identify manual data entry points where staff copy information from one system into another — that is usually a sign of an integration that was never built properly.

    Step 3: Document Integrations and Connections to Other Systems

    Build a list of every integration the legacy system has, formal and informal. For each one, record what the connected system is, how the connection works (API call, file transfer, direct database link, manual process), how frequently data is exchanged, and what breaks if the connection fails. Assign a criticality rating: high, medium, or low. This drives the migration sequence.

    Connected SystemIntegration TypeFrequencyCriticalityOwner
    Sage accountingShared SQL databaseReal-timeHighFinance / IT
    Warehouse systemNightly CSV exportDailyHighIT
    External courierAPI call on order despatchPer transactionHighIT
    Management reportsManual Excel exportWeeklyMediumOperations
    Screenshot of a 'Legacy System Dependency Map – Template' spreadsheet with columns for ID, source system, dependency name, dependency type, details, criticality, business impact, owner, location, frequency, notes and status, populated with example rows for a legacy order system
    Example dependency map template — capture every connection in a single sheet, colour-coded by criticality.

    Step 4: Map Infrastructure and Scheduled Jobs

    Look at Windows Task Scheduler or the Linux crontab on the servers that host the system, review Windows Services and any middleware processes, and check for licences or certificates tied to the current infrastructure. Many legacy systems have automated jobs that nobody remembers setting up but which are critical to daily operations. These are usually things like a midnight database backup, a morning report generation, or an end-of-day reconciliation.

    Document each scheduled job: what it does, when it runs, what it produces, and who would notice if it stopped.

    Step 5: Visualise and Prioritise

    Consolidate everything into a single dependency diagram. A whiteboard sketch with boxes and arrows, or a diagram in Miro or Lucidchart, is sufficient. Show the legacy system at the centre, with each dependency type radiating outward: the databases it shares, the systems it connects to, the teams that depend on it, and the infrastructure it runs on. Colour-code by criticality. High-criticality dependencies get addressed first, and the migration sequence follows from the map.

    A Practical Example: Mapping Dependencies in an SMB Order System

    Illustrative dependency map for a custom VB.NET order management system at the centre, connected to Sage accounting, a warehouse system, end users (sales, finance, warehouse) and scheduled tasks (nightly CSV export, weekly database backup), drawn on a dark navy background with mint-green connections
    Illustrative dependency map for an SMB order management system, showing the connections surfaced during interviews, data-flow tracing and infrastructure review.

    To illustrate the practical application of this process, consider a UK distribution company with 45 employees that had been operating a custom-built order management system for eleven years. The system was a VB.NET application on Windows Server 2012 and a SQL Server database.

    The interviews revealed three team dependencies that were not documented anywhere. Sales entered orders through the main interface. Finance ran end-of-month reports directly from the database using saved queries. The warehouse printed a daily pick list at 7:00 am using a legacy print function built as an afterthought, not mentioned in any technical documentation.

    Data flow tracing surfaced two more. Sage shared the SQL Server database; both programs read a payment status table, and any changes to the schema would interfere with Sage's reconciliation process. A CSV file was exported to an SFTP server by a nightly batch job, which was retrieved by the logistics provider each morning.

    The infrastructure review found two Task Scheduler jobs that nobody on the current IT team knew existed — one for the nightly CSV export, one for a weekly database backup — and an SSL certificate expiring in six weeks.

    The resulting map showed the Sage database integration as the highest-criticality dependency, and the logistics export was second. The pick list process needed rebuilding before the warehouse could transition. The SSL certificate was an immediate action item regardless of the migration timeline.

    This example is illustrative. The specifics will vary, but the structure of the process is consistent.

    Common Mistakes When Mapping Dependencies

    Starting with the code rather than the people. Code shows technical connections but not process dependencies or informal workflows. ThoughtWorks notes that overlooking the people who hold legacy knowledge leads to misaligned designs and last-minute scope shocks. Start with interviews, then use the code to verify.

    Assuming the documentation is current. Legacy systems accumulate years of changes rarely reflected in documentation. A data flow diagram from 2018 is a starting point for conversation, not a record of fact.

    Missing shadow processes. Manual exports someone runs every Friday, data copied into a spreadsheet and emailed to a manager, a report printed and filed rather than stored digitally — ask specifically about anything people do manually.

    Treating the map as a one-time exercise. Build in a review step at the start of each migration phase, particularly if a business still actively uses the system while migration is underway.

    Underestimating data dependencies. Shared databases, inconsistent data formats, years of accumulated quality issues, and undocumented data relationships create migration risk that is difficult to anticipate without thorough mapping.

    Tools and Approaches for Dependency Mapping

    For most SMBs with one to three legacy systems, a structured spreadsheet and a visual diagram are sufficient. For businesses with more complex environments, automated discovery tools such as ServiceNow Discovery or Datadog can scan the network and identify connections automatically, providing a starting point that interviews then enrich with process context.

    How Dependency Mapping Connects to Migration Planning

    Creating a dependency map is the first step of the planning process, not the last. It drives the migration sequence, since high-criticality dependencies must be addressed before the components they connect to are moved. As a result, it tells you which connections need to be temporarily bridged during parallel running and shapes the rollback plan. Every dependency is a possible failure point, and if you know what they are ahead of time, you can plan for them instead of finding out the hard way.

    The map also informs the architectural approach: see our guide to the strangler fig pattern for how the dependency map shapes a phased migration, and our guide to rewrite vs. modernise for how dependencies influence that decision.

    Dependency mapping is the first step in the assessment work Hollinford carries out at the start of any legacy modernisation engagement. For more on how that process works in practice, see how we work, or the legacy modernisation service page.

    Key Takeaways

    • Legacy systems are never isolated. They connect to databases, other systems, business processes, users, and infrastructure in ways that are rarely fully documented.
    • Five types of dependencies to map: data, integration, process, user, and infrastructure. Process dependencies are consistently the most overlooked.
    • Start with interviews, not code. The people who use the system daily know things that are not visible anywhere in the technical environment.
    • The dependency map determines the migration sequence, the interim integration requirements, and the rollback plan.
    • For most SMBs, a structured spreadsheet and a clear diagram are sufficient. Completeness matters more than sophistication.

    Sources & Further Reading

    Dependency mapping is the first step

    If you are planning a legacy system migration and want to understand what it actually connects to before committing to a plan, we can help. We work exclusively with UK businesses on legacy modernisation and carry out dependency mapping as the first stage of every engagement.