Custom Software Development
A one-page brief for a custom dispatch and invoicing system
You don't need a 40-page spec. Map one order, write five to eight testable user stories, and protect a €20–30k build with a 'not in v1' list.
You don't need a 40-page requirements specification. For a custom dispatch and invoicing system inside a €20,000–€30,000 budget, the useful artefact is one page: a map of one order from phone call to invoice, five to eight user stories with pass/fail criteria, a few plain-language boundary rules, and a short list of what is deliberately not in v1.
For this one-page approach to work, every requirement on the page has to be testable in a demo. If you cannot say how you would check it in the office, it is not a requirement yet. The reason to spend an hour on this up front is a published observation by Boehm and Basili: "Finding and fixing a software problem after delivery is often 100 times more expensive than finding and fixing it during the requirements and design phase." That is an order-of-magnitude estimate, not a guarantee for your project.
One disclosure before the method: the dispatch/invoicing worksheet and worked example in this article are constructed illustrations for the reader, not a description of a Niro Digital client engagement or a measured outcome.
What developers actually need from you: one page, not a specification
Scope is what a build includes and what it deliberately leaves out. One drafting aid, not a required format, is a single page whose final form is agreed with the agency. A possible structure uses four blocks: a current-process map, five to eight user stories, pass/fail acceptance criteria for each story, and plain-language boundary conditions plus a "not in v1" list. Treat the blocks as illustrative, not the brief itself.
Niro Digital has not supplied a case study from a comparable operations or logistics engagement, so this worksheet and worked example are a generic drafting aid and a constructed illustration, not evidence that the structure comes from shipped client work. The custom software service Niro Digital publishes describes what it builds as CRMs, dashboards, employee tools and logistics systems shaped around how a business actually works. You can read that description on the custom software development page.
First, map one order from phone call to invoice
This article is a generic preparation worksheet, not a field note from Niro Digital client delivery. Pick one recurring job and follow a single instance of it, not the busiest week. For each step, note four things: who does something, what data they read or enter, which tool or channel they touch, and where work waits or data gets re-entered. No diagram. A line per step is enough.
The filled-in rows below are a constructed illustration for you, not a description of a Niro Digital client engagement; fill in your own steps and tools.
| Step | Who and what happens | Tool or channel | Wait or duplicate |
|---|---|---|---|
| 1 | Office clerk enters the customer, items, delivery address and date. | Excel | Waits for dispatch |
| 2 | Dispatcher assigns a driver and run number. | WhatsApp + paper run sheet | Order reference copied twice |
| 3 | Driver calls in the delivery and receiver name. | Phone | Office waits for the call |
| 4 | Office clerk copies completed orders into the invoicing file. | Second spreadsheet | Order lines re-entered |
| 5 | Accountant raises an invoice from the copied lines. | Separate invoicing file | Around one week delay |
Count the duplicates and the waits; those are your automation targets.
Let cost-per-touch decide what goes into v1
A touch is any time a person reads, enters or copies data. Score each touch by how often it happens, how long it takes, and whether the data already exists somewhere else.
Using the constructed illustration, not your numbers: if order re-entry takes 10 minutes per order and the office spends 12 hours a week copying completed orders, those 12 hours are salaried time spent moving data that already exists in the order sheet. If invoicing waits a week because delivery status only arrives by phone, that wait is financing the gap. Replace every figure with your own measured numbers before you decide anything.
Treat the three scores as optional questions for an agency discussion, not as a rule that decides v1. Ask which touches happen most often, take longest, or copy data that already exists, and which of those an agency would automate first inside your €20,000–€30,000 ceiling. Ask it to cost the candidates before scope is committed. Compare that ceiling with the indicative price ranges Niro Digital publishes on its pricing page; those ranges reflect typical projects. See the pricing page.
Now write five to eight user stories in business language
A user story is a single sentence in the form: "As a [person], I want [something the system does], so I can [business result]." It is called a story because it describes one job from one person's point of view, not because it can be vague. A dispatch/invoicing brief might contain stories like these:
- As a dispatcher, I want the order status to update when a driver confirms delivery, so I can invoice without waiting for a phone call.
- As an office administrator, I want a draft invoice created from the order lines when delivery is confirmed, so I don't re-type the same order into the invoicing file.
- As an owner, I want to see which orders are out with drivers and which are delivered, so I can answer a customer without calling the dispatcher.
Write only the stories that remove a touch, a wait, or an error from your map. If you have more than eight, move the extras to the not-in-v1 list now.
Turn every user story into a pass/fail test the developer can demo
Acceptance criteria are the conditions you will test in a demo: each one either passes or fails, with no judgement call.
| Vague request | Verifiable requirement you can demo |
|---|---|
| "Invoices should be automatic." | When an order is marked delivered, the system creates a draft invoice from the order lines. The office approves it, and the same order cannot have a second draft invoice. |
| "Drivers should update status." | A driver marks delivery from a phone. The order status changes within [X] seconds of the driver confirming delivery, and the dispatcher sees it without a phone call. |
| "Stop double entry." | An order entered once is available to dispatch and invoicing without re-typing; no order line has to be entered in two places. |
In the demo, ask the developer to run each criterion with a sample order. If either of you has to argue whether it passed, rewrite it. If you cannot set [X] yourself, agree it with the agency before signing.
This pass/fail habit matches Niro Digital's published AI-automation doctrine: "We never trust model output blindly. Every automation ships with deterministic verification checks, budget ceilings, and human approval gates for irreversible actions. We build systems where AI output is treated as a claim that must pass checks before it counts as done."
Name the background rules in plain language
These are boundaries, not features. A developer needs them to size the build, but you can state them as you would to a colleague.
- Users and devices: for example, eight office staff on desktop, with drivers on phones during runs.
- Speed: after the driver confirms delivery, the dispatcher should see it within [X] seconds under normal office use; write the demo criterion that way, not as "immediately". Entering an order should not block the office. Set the [X] yourself; if you cannot, agree it with the agency before you sign.
- Roles: dispatchers see all orders, drivers see only their assigned runs, and the accountant sees invoice and VAT fields.
- Data ownership: you own the data and can export it in a common format such as CSV.
- Security and data access: state who may access customer, delivery and invoice data, whether access must be removed when staff leave, and what backup and recovery you expect. Ask the agency to identify which GDPR and security requirements apply before the build; this is not legal or compliance advice.
- Invoicing and VAT: list which fields the invoice must carry, then run them past your accountant. Local invoicing and VAT rules change, and this is not tax advice.
Write the "not in v1" list before you sign anything
Treat the list as a written scope boundary to discuss with an agency, not a decision rule. Write each as "not in v1, possible later". Sample exclusions:
- Not in v1: automatic route optimisation — dispatcher still assigns runs; the system records the assignment.
- Not in v1: a full driver app — drivers use a simple mobile page for delivery status, not navigation or photo capture.
- Not in v1: complex financial analytics — accept an orders-due and invoices-issued list, not a margin-by-route dashboard.
Keep to three to five exclusions. If a feature becomes essential later, it becomes a change request, not a mistake.
Your one-page brief
Copy the block below into a single page and treat it as a drafting aid: one possible way to organise a first requirements conversation. It is not the only shape a brief can take, and you agree the final form with the agency. No wireframes, screen designs or database schemas are expected from you at this stage.
| Block | What you write |
|---|---|
| Current process | One order from phone call to invoice. Each line: who, data, tool or channel, wait or duplicate entry. |
| User stories (five to eight) | "As a ..., I want ..., so I can ..." |
| Acceptance criteria | For each story, two to four pass/fail lines: what happens, who sees it, and how you test it. |
| Boundary conditions | Users, devices, response time, roles, security/data access, data ownership, invoice/VAT fields to confirm with accountant. |
| Not in v1 | Three to five features, each written "not in v1, possible later." |
- Security and data: state who may access customer, delivery and invoice data; whether a leaver's access must be removed; and what backup and recovery you expect. Ask the agency which GDPR and security requirements apply before the build. This is not legal or compliance advice.
The dispatch/invoicing worksheet and worked example in this article are constructed illustrations for the reader, not a description of a Niro Digital client engagement or a measured outcome.
Use the one-pager to test an agency proposal, then ask about change control
A proposal should answer the brief, not replace it. Before you sign, check four things: it restates your actual problem, it lists the assumptions the developers are making, it separates fixed scope from extras, and it says what is not included.
- What assumptions are you making about our current process?
- What is not in the estimate?
- When we find a missing step after kickoff, how does a change get priced and approved?
- Can you demo each acceptance criterion before the final invoice is due?
Change control is just the agreed process for deciding what happens when a requirement changes: what gets written down, who approves it, and how the budget moves. Requirements will evolve after kickoff; that is normal. The risk is not discovery, but unbounded discovery.
Take the one-pager to the next agency conversation. If you want Niro Digital to review it, use the contact form and mention that you have prepared a one-page brief. The point of that call is to check whether the scope fits your budget and which step to digitalise first — not to sell you a system on the spot.
Sources
Keep reading
Blog
Start here
Tell us the constraint
Operations, workers or customers. One sentence is enough, we'll reply within one working day.