Business software 9 min read
How to write software requirements without technical skills
How to describe what your new system must do in plain language a developer can estimate, with a simple structure to copy.
On this page
You can write a useful software requirements document without any technical skills by describing the problem, the people who will use the system, the steps of each process, and the rules and exceptions your business follows, in plain language. A developer can turn that into screens, data and code. What they cannot do is guess how your business works, and that is exactly the knowledge you already have.
A software requirements document is a written description of what a new system must do. It is sometimes called a specification or a scope document. It does not need to describe databases or programming languages. This guide explains each section and ends with a simple structure you can copy. If you are planning a custom system, our custom software service page explains how we approach these projects.
Start your software requirements document with the problem, not features
It is tempting to start with a list of features: "we need a dashboard, reports and a mobile app". Features are answers. Start with the question instead.
- Describe what is going wrong today. For example, orders are tracked in several spreadsheets, staff re-enter the same data twice, or managers cannot see which jobs are late.
- Explain the cost of the problem. Lost time, mistakes, slow responses to customers or decisions made without good information. You do not need exact figures; a clear description is enough.
- State what success looks like. Describe the situation after the system is in place, such as "every job has one record that the office and field staff both update".
- Mention what must not change. Some existing tools or habits may need to stay, such as your accounting software or a document customers already know.
When a developer understands the problem, they can suggest simpler solutions than the features you first imagined, and they can spot needs you did not think to write down.
Describe who uses the system
Software is used by people with different jobs, and each group needs different things. List every group, even small ones.
- Name each type of user. For example office staff, field technicians, managers, customers and suppliers.
- Describe what each group needs to do. Keep it short: "technicians need to see today's jobs and mark them complete from a phone".
- Note where and how they work. On a desktop in the office, on a phone outside, with a poor internet connection, or only occasionally.
- Say what each group must not see or change. For example, technicians should not see pricing, and customers should only see their own orders. This becomes the basis for user roles and permissions.
- Estimate how many people are in each group. Rough numbers help the developer plan for scale.
A useful format here is the user story, a single sentence in the pattern "As a [type of user], I want to [do something], so that [reason]". For example: "As a manager, I want to see all overdue jobs on one screen, so that I can follow up the same day." User stories keep each requirement tied to a real person and purpose.
Write down each process step by step
Processes are the heart of most business software. Walk through each one in the order it happens today, then note how it should work in the new system.
- List your main processes. Examples include taking an order, scheduling a job, approving a quote, issuing an invoice and handling a return.
- Describe each one as numbered steps. Who does what, in which order, and what information they need at each step.
- Note where information comes from and goes to. A form, an email, a phone call, another system or a paper document.
- Mark the handovers. Points where work passes from one person or team to another are where delays and mistakes happen most. Say what should happen at each one, such as a notification or a status change.
- Include what happens at the end. An invoice is sent, a report is updated, a customer is notified.
- Attach real examples. A copy of an existing form, spreadsheet or report, with sensitive data removed, is often clearer than a long description.
Simple diagrams help too. Boxes and arrows drawn by hand and photographed are perfectly acceptable.
An example process, written out
Here is how a repair business might describe its job booking process:
- A customer calls or fills in the website form with their name, address, the appliance and the problem.
- Office staff create a job, check which technicians cover that area, and offer the customer two or three time slots.
- When the customer chooses a slot, the job is assigned to a technician and the customer receives a confirmation by email or text message.
- On the day, the technician sees the job on their phone, travels to the address and records the work done, parts used and time spent.
- If a part must be ordered, the job is marked "waiting for parts" and the office arranges a second visit.
- When the job is complete, the office checks the details and sends an invoice.
Notice what this reveals: two user types, a rule about technician areas, an exception for missing parts, notifications and an invoice at the end. A developer can estimate from this far more accurately than from "we need a job booking system".
List the rules and exceptions
Rules are where business software gets complicated, and where estimates go wrong if they are missing. Write them down as plainly as you can.
- Business rules. For example: "orders above a set value need manager approval", "a technician cannot be booked for two jobs at the same time", or "prices for trade customers come from a separate list".
- Calculations. Explain how totals, discounts, commissions or deadlines are worked out, with a worked example.
- Exceptions. What happens when things do not follow the normal path: a cancelled order, a partial delivery, a customer who pays late, or a job that needs a second visit.
- Data you must keep. Records you are required to keep, how long for, and any privacy requirements.
- Reports and exports. What managers need to see, how often, and in which format.
- Other systems. Tools the new system must connect to, such as accounting, email or payment services.
If you are unsure about a rule, say so. "We are not sure how to handle returns yet" is far more useful than leaving it out, because it tells the developer to plan a conversation.
Practical needs that are easy to forget
Some requirements are not about what the system does, but how it must behave. Developers call these non-functional requirements. Mention the ones that apply to you:
- Devices. Will people use the system on phones, tablets, desktops or all three?
- Locations and languages. Do users work in different countries, languages or time zones?
- Availability. Does the system need to work outside office hours, for example for customers or night shifts?
- Volume. Roughly how many records, orders or users do you expect now and in a few years?
- Security and privacy. Does the system hold personal, health or financial data that needs extra protection?
- Access from outside. Will customers, suppliers or partners log in, or only your staff?
You do not need precise answers. A rough description helps the developer choose the right approach from the start.
Mark what is essential and what can wait
Almost every project has more ideas than budget or time. Sorting requirements early keeps the first version focused and affordable.
- Must have. The system cannot launch without it.
- Should have. Important, but a manual workaround is acceptable for a short time.
- Could have. Useful improvements for a later phase.
- Not now. Ideas you want to record but are not planning to build.
Ask yourself, for each item, what would happen if it were missing on the first day. If the honest answer is "we would do it by hand for a while", it is probably not a must have.
A simple structure you can copy
Use this outline as a starting point. Short, clear answers are better than long ones.
SOFTWARE REQUIREMENTS
1. The problem
What is going wrong today:
What it costs us:
What success looks like:
2. Users
Each type of user, what they need to do, and where they work:
What each type must not see or change:
3. Processes
Each main process as numbered steps, with handovers:
4. Rules and exceptions
Business rules and calculations, with examples:
Exceptions and how to handle them:
Records we must keep:
5. Reports and connections
Reports needed:
Systems to connect to:
6. Priorities
Must have / should have / could have / not now:
7. Practical details
Budget range, target date, decision makers:
Share the document with the people who do the work every day before sending it to developers. They will spot missing steps and exceptions that managers often forget.
What developers will add
A good developer will read your document, ask questions and turn it into a technical plan: screens, data structures, integrations and an estimate. Expect questions; they are a sign the document is being read carefully. If your processes rely on data currently held in spreadsheets, our guide on moving business data from spreadsheets to a new system explains how to prepare it.
Our guide to planning a software rollout explains how staff move to the new system once it is built.
Features added later also add to ongoing costs, which our guide on software maintenance costs explains.
Summary
- Start with the problem, its cost and what success looks like, not a list of features.
- Describe every type of user, what they need and what they must not see.
- Write each process as numbered steps, including handovers and real examples.
- List rules, calculations and exceptions, and say where you are unsure.
- Sort requirements into must have, should have, could have and not now.
A clear requirements document is the best protection against a system that looks right but does not fit how your business works. If you have requirements ready or want help shaping them, you can share them with us here.