Guide
How to Plan the Handoff for Custom Internal Software
A practical handoff plan for custom internal software, including ownership, access, deployment, recovery, documentation, and support.
Custom internal software can become part of daily work before the business is ready to operate it without the original builder. The application may depend on a source repository, hosting account, domain, database, vendor services, credentials, scheduled jobs, and knowledge held by one person.
A handoff should make those dependencies visible and give the next owner a tested way to deploy, monitor, recover, and change the system. Plan it during the project so ownership does not depend on a final folder of documents.
Name the owner of every operating responsibility
Separate business ownership from technical operation. The business owner decides what the software should do and approves process changes. The technical owner maintains hosting, releases, access, monitoring, backups, and incident response.
Record a primary and backup for each responsibility. Include vendor billing, domain renewal, certificate renewal, support requests, data corrections, user administration, security reports, and decisions to pause or retire the application.
An outside builder can continue providing support under a written arrangement. The business still needs access and information that allow another qualified person to take over if availability, price, or priorities change.
Place core accounts under business control
For transferred software, place the source repository, production hosting account, domain and DNS, database, monitoring, storage, and other core services under business-controlled organization accounts where practical. A managed service or multi-tenant product may remain in supplier-controlled infrastructure. In that case, document administrative access, data export rights, continuity commitments, service dependencies, and a tested transition path in the governing agreement.
Transfer ownership with invitations and role changes rather than sharing passwords. Store production secrets in the approved provider or secret manager, and give the incoming operator a tested way to rotate them without placing values in documentation or source control.
Record subscription owners, renewal dates, billing contacts, usage limits, and what happens when payment or a quota fails. Include CI/CD administration, package registries, artifact storage, signing credentials, branch protections, and machine accounts. These dependencies can remain hidden even after the repository and main hosting account are transferred.
Confirm the rights that continue after handoff
Repository access does not establish a right to use, modify, build, deploy, or transfer the software. Review the governing agreement for source-code ownership or license terms, permitted maintainers, derivative work, hosting rights, and any limits that apply after the supplier relationship ends.
Inventory third-party libraries, fonts, images, data, models, build tools, and hosted components with their licenses and account requirements. Mark anything that cannot be transferred or used by a replacement operator. Seek qualified legal review when the agreement or license rights are unclear.
Document the system as it actually runs
Create a current architecture map showing the application, data stores, queues, scheduled jobs, connected systems, identity providers, external services, and public entry points. Mark which system owns each important record and where data is copied or retained.
The deployment record should identify the release source, tag, commit, or production branch; build and release path; environment configuration names; database migration process; rollback or containment control; and evidence that confirms a release. Reference secret locations without writing secret values.
Keep operating instructions beside the source when practical. Update them in the same review as a change to deployment, access, recovery, or a connected system.
Give the operator a real runbook
A runbook should begin with observable symptoms. Explain how to find a failed item, inspect logs under the correct access, identify the deployed version, pause further effects, check destination state, and decide whether retry or manual handling is safe.
Include alert routes, escalation contacts, vendor support paths, known maintenance windows, expected queue and timing behavior, and the manual business process used during an outage. Name the person allowed to resume normal processing.
Use links to controlled dashboards and records rather than screenshots that become stale or expose private information. Assign an owner and review date to each runbook.
Prove backup and recovery access
List what is backed up, how often, where it is stored, who can restore it, retention limits, who controls and can recover the encryption keys, and dependencies that a data backup does not contain. Source code, secrets, object storage, vendor configuration, and domain control may require separate recovery plans.
Run a restore exercise in an isolated environment. Confirm data integrity, application compatibility, required credentials, migrations, connected-service behavior, and the point in time the restore represents. Record the evidence and any manual reconciliation needed after restoration.
Define recovery expectations from the business consequence of downtime and data loss. Treat them as tested targets with known limitations rather than guarantees created by a backup schedule alone.
Walk through a release with the next owner
The incoming operator should set up approved local access, review a change, run the tests, deploy to a non-production environment, inspect the result, and rehearse the production release procedure under supervision. If the handoff includes an authorized live release, define its change window, approval, rollback control, and monitoring before it begins. A document-only walkthrough cannot show missing permissions or knowledge.
Practice one contained failure. Use a synthetic or controlled record to trigger an alert, locate the affected operation, pause the workflow, follow the correction or rollback steps, and confirm recovery through reconciliation.
Record unresolved warnings, manual steps, fragile dependencies, and work that remains with the original builder. Assign each item an owner and decision date instead of describing the handoff as complete by default.
Define support after acceptance
Separate defect correction, routine maintenance, vendor-driven changes, security updates, user support, new features, and emergency response. State what is included, response hours, severity rules, communication routes, and how additional work is approved and priced.
Agree on the evidence required for acceptance while the project team is still available. Keep a list of known limitations and deferred work with their business effect. Acceptance can transfer normal operation while named follow-up items remain open.
Plan for a later supplier or platform change
Document how the business can export its data in a usable form, transfer the repository and deployment history, rotate credentials, replace vendor integrations, and remove the prior supplier's access. Identify licensed components or services that cannot be transferred directly.
Set retention and removal steps for builder devices, support systems, diagnostic files, backups, and vendor copies. The outgoing party should confirm completed removal or any agreed retention without exposing secret or customer data in the confirmation.
After a major release, ownership change, new vendor, or recovery exercise, assign one person to compare the handoff record with the running system and update the mismatched sections by a named date.
