Skip to content
ARTINEXT

Custom software

How to commission custom software: the brief, the contract, acceptance and support

The brief is the software's first draft. Anything it leaves out gets decided by the developer, and two developers reading the same short sentence build two different products.

Digital Systems StudioPublished

The team that designs and builds custom software and internal tools for engineering and construction firms, from brief to handover.

Contents
  1. The short answer
  2. Do you need custom software
  3. Writing the brief
  4. Discovery and prototype
  5. Estimates and payment
  6. Contract and ownership
  7. Acceptance testing
  8. Support after delivery
  9. Conclusion
  10. FAQ

How to commission custom software? Start with a document, not a contract: a brief that names the problem, the users, the data and how success will be measured. After it comes a short discovery or prototype phase, a contract that settles code ownership and how acceptance works, acceptance testing on real data, and a plan for support after delivery. Most projects that miss their target went off course at step one.

In a web development class the founder had an assignment with a one-sentence brief: make a website. Most of the class stopped once the tabs worked. He worked until 3 AM and was back at it by 8 AM, because the transitions could be smoother.

Both results met the brief.

A brief that doesn't define done accepts both, and the client doesn't find out which one they're getting until delivery day.

The shadow of a hand holding a pen over the signature line of a printed contract

Before commissioning: do you need custom software

Check three cheaper options first: an off-the-shelf product that does the job with some configuration, a feature in software you already own and don't use, or a well-structured Excel file with a few clear rules. If one of those solves it, you don't need custom software, and you don't need us, or anyone like us.

Custom software earns its cost when the company's workflow runs on the company's own rules, when data moves between several programs by hand, or when a manual error in a repeated task has a known cost. Digital transformation for engineering firms covers how to pick the first process.

Writing a custom software brief

A whiteboard with a sticky note and a red marker in a meeting room, where the brief gets worked out before the build

A brief describes the problem, not the solution. "We want a dashboard" is a solution. "The project manager spends hours every week merging reports from several programs in Excel, and the numbers don't reconcile" is a problem, and a developer can propose the right fix for it. If you already have a solution in mind, rewrite it as the problem it's meant to solve.

A complete brief covers:

  1. The current workflow: what's done, by whom, in which program, and how often.
  2. Users: how many, in what roles, how comfortable with software.
  3. Data: inputs and outputs, file formats, and the programs the new system has to talk to.
  4. Constraints: infrastructure, security, versions of existing software, budget.
  5. Success criteria: measurable ones, the time a task takes, the number of errors, that acceptance testing will check.
  6. Out of scope: what isn't being built this round.

The last item matters as much as the rest. Anything not ruled out drifts into scope during the project, and its time and cost come with it.

Discovery and a prototype before the full build

When the problem isn't fully defined yet, a short, separate phase before the full build takes out the main risk. The UK government's service manual calls it discovery: understand the users, the constraints and how success will be measured, without building anything. Its output is a decision, go on or stop, and stopping there is a legitimate result.

Then a prototype or MVP gets built with the fewest features needed and tested with real data and real users. Building in stages shows what works, what needs to change, and what shouldn't be built at all, before the full investment is made. That phase is covered in MVP development for internal tools.

Estimates and payment models

There are two main models. Fixed price: scope and cost are set before work starts, and every change needs a separate agreement. It fits when the brief is complete and stable. Time and materials: you pay for hours worked, and scope can move during the project. It fits when part of the need is still taking shape.

Either way, tie payments to delivery and acceptance, not to the calendar. Each milestone has a specific, testable output, and it's paid once that output is accepted. An estimate given before discovery is a guess, and it should be revised after.

The software development contract and code ownership

Paying for development doesn't automatically make you the owner of the code. Under many legal systems the developer keeps the intellectual property unless the contract expressly transfers it, and developers sometimes grant only a licence, especially when they reuse their own earlier code. If ownership matters to you, it has to be written down.

The contract should also cover: delivery of source code and documentation at each milestone, how open-source libraries and third-party code are handled, confidentiality of the company's data, a bug-fix period after delivery, and what happens if the contract ends early. If you're worried about the developer staying in business, source code escrow is an option. IP rules differ by country; have a lawyer review the final text.

Software acceptance testing

Acceptance testing is where the client confirms the software matches the brief. It runs against the success criteria written in the brief, on the company's real data, by the people who'll use the software every day, not only by the manager who ordered it.

Defects go on a written list, each with a priority and whether it has to be fixed before acceptance. Acceptance is given in writing, and that milestone is paid after it. A success criterion that wasn't written down at the start turns into a disagreement here.

Support, maintenance and handover

Software keeps changing after delivery. The programs it connects to release new versions, users find new needs, and bugs appear that testing didn't catch. An add-in built for Revit has to be checked against every annual Revit release, and rebuilt when needed.

Before signing, settle how support works: response time for bugs, the cost of changes and updates, and the documentation handed over so another team could pick up the work later. What to look for in a developer is covered in choosing a Revit plugin development company, and building custom tools for technical teams is our AEC workflow automation service.

Conclusion

Commissioning custom software starts with a brief that sets out the problem, the users, the data, the success criteria and the scope. A discovery or prototype phase takes out the main risk before the full build, the contract settles code ownership and acceptance, and acceptance testing runs against the same criteria. "Make a website" is met by a few working tabs and by something far past them. The brief is the only place that difference gets decided. What's the first thing you'd change?

FAQ

Where do you start when commissioning custom software?

With the brief: the current workflow, the users, the data, constraints, success criteria and what's out of scope. It's the basis for the estimate, the contract and acceptance testing.

What should a software requirements document include?

The problem rather than the solution, the users and their roles, inputs and outputs, the programs the system has to connect to, measurable success criteria, and what isn't being built this round.

Is fixed price or time and materials better?

Fixed price suits a complete, stable brief. Time and materials suits a project where part of the need is still forming. In both, tie payments to accepted milestones.

Do we own the code if we pay for it?

Not necessarily. Under many legal systems the developer keeps the IP unless the contract expressly transfers it. Transfer of ownership and delivery of source code both need to be in the contract.

What is software acceptance testing?

The stage where the client checks, against the brief's criteria and on real data, whether the software meets the need. Acceptance is given in writing, and the milestone is paid after it.

Why build a prototype before the full build?

A prototype shows, for less money, which assumptions hold and which features aren't needed at all, before the main budget goes into building them.

What support do we need after delivery?

Fixes for bugs testing didn't catch, updates for new versions of connected software, and new changes. Agree response times, costs and the documentation you'll receive before signing.

Back to top

Next step

Tell us the process you'd change first

Bring the workflow, not the spec. If a tool is the wrong answer, we'd rather tell you that in the first conversation than at the end of a build.

We are not a fit if you want an off-the-shelf template or a generic plugin installed without a process review.