Custom software & portals

Deliver new software: arrange code, accounts, data and future development

Make a new software delivery transferable through practical arrangements for access, building, operation, data, documentation and future changes.

On this page

After a new software delivery, the organisation needs to understand how to use, operate and develop the application further. Saying “the software belongs to you” does not automatically identify who administers an account, where the code lives or how another developer can make a change. Technical access, daily responsibility and commercial or legal arrangements are different subjects that need to be considered together.

This guide focuses on new development and subsequent improvement, rather than investigating an unknown inherited system. Its fictional example is an agency commissioning a new customer portal. The examples explain a desired delivery; they do not describe a customer contract, delivered OXIAE implementation or rights that automatically apply to every project. The practical goal is an arrangement that somebody else can understand and use.

Describe delivery as a usable whole

List the components needed to use and operate the first version. These may include application source, data structure, environments, external services, instructions and relevant trial cases. For each, state where it becomes available, who receives access and which responsibility accompanies it. A folder containing files without explanation is not the same as an application that a responsible team can continue operating.

Use the fictional agency’s portal as a starting point. It invites customers, receives documents and communicates progress. Beyond working screens, it needs somebody who can change accounts, handle failures and commission another release. These tasks identify which delivery information actually matters. Documentation becomes a practical aid to agreed work instead of an abstract extra product whose size says little about its usefulness.

Provide understandable source and version access

Agree which repository holds the code and who administers its account or organisation. Identify access needed for review, development and operation. Keep responsibilities proportionate: someone reading a report does not automatically need authority to change production. Explain how access changes when an employee or developer leaves so project continuity does not depend on a single person retaining an otherwise unnecessary account.

GitHub documents repository transfer as a platform operation with specific conditions. This illustrates the difference between technical transfer and wider software arrangements. Administering a repository does not establish that external services, information or contractual rights have also been addressed. Identify the separate components of the intended delivery and make their agreed availability demonstrable rather than relying on a single phrase covering everything.

GitHub Docs: Transferring a repository ↗

Agree responsibility for hosting and services

Map the hosting, database, domain, email facilities and other services the application needs. For each, identify responsibility for its account, billing, configuration and changes. Different parties can hold different tasks, but the arrangement should remain understandable to whoever makes the first decision during an outage or commercial change. Account location alone does not explain the complete operational relationship between customer and supplier.

Consider changing the billing contact for an external service. Who can arrange it, and who assesses possible application effects? Do not put access keys into general project documents. Agree a suitable method for handing over and managing secrets. The overview should explain which access is required without unnecessarily distributing sensitive credentials to everybody able to read the rest of the project information.

Make transferability concrete through access, a reproducible build and rehearsed maintenance: Handing over existing software operations: let a second person perform the work.

Make building and publication repeatable

Another developer should be able to understand how available source becomes a running application. Record versions, dependencies, configuration categories and the publication route. Describe automated steps and points requiring a responsible person’s decision. A successful first deployment from the original maker’s laptop says little about the ability to assemble the same version again later using the information supplied at handover.

Perform a proportionate repeatability exercise in an agreed environment. It can show whether instructions allow a recognisable version to be built and checked. Use appropriate access rather than copying production secrets into ordinary source files. Evidence concerns the selected environment and version; changes in suppliers or dependencies may later require renewed investigation and maintenance. Make that continuing responsibility visible instead of treating a successful first build as a permanent guarantee.

Make records and exports understandable

Decide how the organisation can find, export and assess its information. An export needs enough meaning and references for its intended next use, not merely a technically downloadable file. Describe relationships between customer, enquiry, document version and state. Without that explanation, an export may require substantial reconstruction during future development or when another team tries to understand an existing operational question.

Choose a small representative export and ask a substantive owner to recognise its records. Discuss exclusions and additional work needed for attachments or history. This concerns agreed technical availability. Retention periods, deletion arrangements and rights need to be determined within the real business context. Software can support those decisions when their intended meaning and responsible owners are explicit, rather than attempting to invent the organisation’s policy through default settings.

Connect documentation with actual tasks

Projects do not all need the same quantity of documentation. A small application might be transferable through a concise system map, decision notes and useful operating instructions. A complex portal may require more explanation of roles, information flows and dependencies. Design the material for people performing tasks rather than filling a large document that no responsible person can use when something changes.

Ask the intended operator to investigate an alert or correctly add a user. Observe which explanation is missing. Have a developer prepare a small change with available trial cases too. These exercises identify knowledge gaps more directly than page counts. Preserve important reasons behind design decisions so a later modification does not accidentally remove a deliberate boundary whose purpose was never made visible to the new team.

Separate operation, correction and extension

Different work arises after delivery: changing an account, updating a dependency, investigating a defect or adding a capability. Explain how each is requested and assessed. Agree genuinely offered terms; a label such as maintenance says little about included work, response and support without further description. Make the boundary understandable before an urgent situation creates incompatible expectations about who is responsible for doing the work.

Use a concrete future request to test the arrangement. The agency may add a customer organisation with different reviewers. This can affect permissions, selection, notifications and trial data. Another screen might represent only a small fraction of the change. A useful change route makes those consequences visible before the request is described as a minor adjustment or treated as unlimited development already included in an existing support arrangement.

Discuss rights and limitations separately

A proposal should identify delivered software components and existing products, libraries or external services being used. Ask how licences and commercial arrangements fit intended use and future operation. Technical access does not answer every question about permitted modification, distribution or supply of components. Have uncertainty assessed before it becomes a fixed project assumption rather than relying on a broad ownership statement to resolve every situation.

Avoid the reverse simplification too: contractual wording does not automatically make every account and piece of knowledge practically available. Combine intended terms with concrete access, instructions and data capabilities. The selected arrangement can differ by project. What matters is that customer and supplier share the same meaning of using, changing, operating and involving another party in a subsequent phase of development.

Finish with a demonstrable handover exercise

At first delivery, summarise available material and known limitations. Ask relevant people to perform representative work: recognise a version, administer a user, locate an alert or prepare a modification. Assess the result against agreed responsibilities. A trial by an authorised second person can reveal missing explanations that a complete-looking document list does not expose. Retain findings alongside the release they concern.

Record the decision, outstanding items and an owner for follow-up. Decide when access and documentation will be reviewed again, for example after a team or supplier change. Transferability then remains connected to real use. It is not a one-time sales promise, but a set of understandable and demonstrable arrangements allowing the organisation to keep using its new software and commission focused further development without reconstructing the entire original project.

Turn the explanation into a project decision

Record your assumptions, unknowns and acceptance checks in the matching tool. Use the service guides to discuss delivery and scope.

Open the preparation tool ↗

Questions about this topic

Does source-code access mean everything is arranged?

No. Examine accounts, services, information, build instructions and operating and rights arrangements too. Source is important, but another developer should also understand the application and be able to check or modify it in the agreed environment using the supplied material.

Must every account always belong to the customer?

That depends on the actual service and technical arrangement. Identify who administers, pays for and can grant or revoke access to each account. Investigate continuity when a person or supplier changes instead of treating one general rule as a complete solution to the entire operating relationship.

How can I reduce dependence on one developer?

Make important knowledge, trial cases and access usable by an agreed second person. Have them perform a small concrete task using delivery information. Also discuss change and support arrangements. This provides more insight than merely receiving a large quantity of source or documentation without testing its practical usefulness.

Continue with a related question

Sources and technical background

Discuss your project with Ricardo ↗