Buying Technology

    How to take over software another vendor built: the first two weeks

    Inventory before audit, audit before changes, and a written scope before a contract. A two-week sequence for inheriting a live system, from our own handover of a marketplace.

    GC
    GarunaCDX Editorial
    Editorial team
    Oct 26, 2026 8 min read
    Key takeaways
    • Inventory first. Most surprises are outside the code: deploy path, backups, accounts.
    • Rank findings by severity and fix in waves, most urgent first.
    • Write the maintenance scope after the audit, not before.
    • Capture a baseline before the first change, so you can show improvement later.

    Quick answer

    Spend week one on an inventory: repositories, environments, accounts, secrets, how production deploys, whether backups run and can be restored. Spend week two on a ranked audit, a scored baseline and a written scope. Change nothing in production until both exist, except in an emergency.

    The short answer

    When you inherit a live system, the urge is to start fixing. Resist it for two weeks. The first week is an inventory. The second is a ranked audit, a baseline and a written scope. Only then do you change anything.

    This is opinionated on purpose. Most handovers go wrong in the first month, and almost always for the same reason: someone started “improving” a system before they knew what it did, what it depended on or what would hurt most if it broke.

    Why buyers ask this

    You may have a vendor who left, a developer who moved on, or a system you bought as part of a business. Nobody holds the whole picture, and the system is earning money, so every change feels risky. You also don’t yet know whether you are inheriting a tidy codebase or a liability. The two weeks below are how you find out cheaply.

    Before day one: three rules

    1. Get access in writing, early. Repository access, hosting, the domain registrar, app-store accounts, payment and messaging dashboards, monitoring and the database. If the previous vendor is still around, ask for the list of what they hold. If they aren’t, list what you can see and assume the rest is missing.
    2. Freeze non-urgent changes. Emergencies only. Fixing as you go means you never see the whole picture, and you can’t rank the work.
    3. Rotate before you trust. Anyone who left still knows the passwords and keys. Once you have the inventory, change credentials that a former team could still use, starting with anything that touches money or personal data.

    Week one: inventory

    Write it all down in one document. You are not judging yet.

    AreaWhat to recordWho to ask
    CodeEvery repository, which one deploys what, which branch is productionPrevious developer, the hosting account
    EnvironmentsWhat runs in production, whether a staging copy exists, what each is forPrevious developer, the server itself
    AccountsWho owns the domain, hosting, app-store listings, payment and messaging accountsThe business owner, registrar and billing records
    SecretsWhere credentials live, who can read them, whether any are in the codePrevious developer, a scan of the repository
    Release pathHow a change reaches production, step by step, and who does itPrevious developer, deploy logs
    DataWhere the database runs, who can reach it, what personal data it holdsDatabase host, schema
    BackupsWhether they run, where they go, and whether anyone has tested a restoreHosting dashboard, then a real restore test
    Third partiesEvery external service the system calls, and the account behind eachThe code’s configuration, billing records
    DocumentationWhat exists, and whether it is trueRead it against the system

    Two points make this table work. Record “unknown” as an answer. An unknown is a finding. And separate what the code can tell you from what only people can. On a marketplace we took over, the system arrived as five code repositories on one server. Several answers, such as how production is deployed and how recovery works, aren’t in the code at all. An audit that only reads repositories can’t settle them, so the inventory lists them separately and someone has to be asked.

    Week two: a ranked audit

    Now judge. Review the system area by area, so nothing gets skipped because it’s boring. We use 17 parts, from system discovery, architecture, user flows, data and APIs through security, authorisation, payments and concurrency, scale, reliability, web and mobile, testing, infrastructure and release, privacy and compliance, design and SEO, and dependencies and documentation, ending with a synthesis. Your list can be shorter. Its job is the same: stop you auditing only the parts you find interesting.

    Rank every finding by severity, most serious first. A workable scale:

    SeverityMeaningExample (generic)
    CriticalSomeone could take money, data or control todayAn endpoint that anyone can call, or a secret in a public place
    HighLikely to cause an outage or data lossA change process that can’t be undone, or backups nobody has restored
    MediumWill hurt as you growMissing indexes, no monitoring
    LowQuality and tidinessDead code, inconsistent naming

    Ranking is what makes the audit usable. A flat list of two hundred issues is paralysing. A ranked list lets you say: these are fixed first, these wait, and these we will accept.

    Keep evidence next to every finding, such as the file, the log or the screenshot. A finding nobody can reproduce doesn’t survive review, and a vendor who disputes it will win the argument.

    Score a baseline

    Before you change anything, score the system against a fixed list of categories and write the date on it. Ours has 21, on a 0 to 10 scale, from architecture and security to backup, accessibility, SEO and dependencies. The scores reflect only what you can verify. Where a control may exist outside the repositories, the row says so, because an unverifiable control is an unreliable control.

    Re-score every quarter. The baseline is what lets you answer “did it get better?” with a dated number. Also record one or two operational measures that the business cares about, such as error rate, page speed or completed bookings per week. The scorecard tells you how the system is built. It doesn’t tell the owner how many bookings completed last week.

    Write the scope after the audit

    Only now write the maintenance agreement. Three rules:

    1. Remediation is a phase, not routine upkeep. If the audit found serious problems, say so in the scope, and put the repair first.
    2. Limits in writing. What is covered, what is capped, what is excluded.
    3. Risk decides process. A copy change doesn’t need an architecture review. A payment change needs everything. See what a maintenance retainer should and should not cover.

    Fix in waves

    Order the fixes by severity and by dependency, not by what is quick. Each wave should be small enough to verify and undo. Do not ship a code change and an incompatible database change together, because that makes a rollback impossible without losing data. Add the new thing, switch over, then remove the old thing, in three separate releases.

    The mistakes we see most

    • Fixing while auditing. You lose the picture, and you can’t rank.
    • Trusting the documentation. It describes the system someone intended. Read it against the real one.
    • Skipping the restore test. A backup nobody has restored is a hope.
    • Leaving old credentials alive. The vendor who left can still log in.
    • Calling repair “maintenance”. It hides the cost, and it hides the risk.
    • Starting the redesign now. Fix the foundations first, or you can’t tell which change caused which result.
    What this doesn't prove, and when you don't need it

    Our fixes on that marketplace are planned, not shipped, so this is a method, not a result. And if your system is small, with one repository, one environment and one person who knows it end to end, a full audit is more than you need. A handover checklist and a half-day review will do.

    Two weeks, at a glance

    DayDo
    1 to 2Access list, freeze non-urgent changes, rotate exposed credentials
    3 to 5Inventory: code, environments, accounts, secrets, release path, backups
    6 to 8Audit in parts, evidence beside every finding
    9Rank by severity, score the baseline
    10Write the scope, put remediation first, agree the waves
    Inheriting a system?
    Send us the repositories and the account list. We'll tell you what to inventory first and whether you need a full audit.
    Book a free scoping call

    Next: what a maintenance retainer should and should not cover and the full handover checklist. Case study: inheriting a live marketplace.

    Facts about the marketplace come from our own audit tracker, handover documents and scorecard and are tracked in our claim ledger. The client is under an NDA, so no client detail, score or finding appears. The two-week sequence, severity scale and day plan are our own method and proof grade 4, not an industry standard.

    Your verdict
    Was this article useful?
    GC
    Written by
    GarunaCDX Editorial
    Editorial team

    Engineers, product and growth folks at GarunaCDX writing about the systems we build for clients.

    View all articles
    Share
    Planning something similar?

    Let's talk about your build.

    Tell us what you are building. A founding engineer replies within one working day with how we would approach it.

    FAQ

    Frequently asked questions

    It depends on the size of the system. We use two weeks as the shape of the plan, inventory then audit, not as a promise. A system with several repositories can take longer.

    No, except an emergency. Fixing as you go means you never see the whole picture, and you can't rank the work. Finish the inventory and audit, then fix in waves.

    Repository access, environment and account lists, how production deploys, the backup process, and any documentation. Ask for these in writing, early.

    Work from what you can see: the hosting account, the repositories you can reach and the billing records. List what is missing as a finding. Then rotate every credential you can, because anything the previous team holds is a risk.

    For a small system with one repository and one person who knows it, no. A handover checklist and a half-day review will do. A system with several repositories and nobody who holds the whole picture is where a structured audit pays for itself.

    The GarunaCDX build log

    Industry insights, once a month

    New case studies, healthcare, marketplace, B2B SaaS and industrial breakdowns, and the engineering notes behind what we ship. One short email a month, no fluff.

    We never share your data — see our Privacy Policy for details.