Skip to content
LPR Studio
FREN
Contact us

RequirementsMethodBusiness softwareSMEsPrototype

How to write a software requirements document for an internal business application

10 min read

To write a requirements document for an internal application, describe the problem before the solution: measurable goals, users and their permissions, the current process, business rules, data, the systems to connect, security constraints and acceptance criteria. Keep it short, prioritise every requirement, then check the whole thing against a visual prototype before asking for quotes.

Most templates online are built for large software teams: a full IEEE style software requirements specification (SRS) with dozens of sections. For an internal tool commissioned by a small or mid-sized company, that format costs weeks and protects little. This guide covers the sections that matter, what to write in each, what to leave to the vendor, and a checklist to run before you send the document.

What the document is really for

A requirements document is not a writing exercise. For an internal application it has three jobs, and they are the only test of whether it works.

  1. Getting a quote. A vendor must be able to estimate the work without guessing what you have in mind.
  2. Comparing quotes. Two proposals answering the same document must describe the same application, or their prices mean nothing side by side.
  3. Accepting the delivery. At handover, each requirement must be checkable with a yes or a no.

A document that piles up pages without serving these three uses costs time to write and time to read, and it protects nobody.

The template in nine sections

SectionThe question it answersExample
Context and goalsWhy this project, and how will you know it worked?"Stop re-typing job sheets that technicians fill in on paper each day"
ScopeWhat is in, and above all, what is out?"Invoicing stays in the current accounting software"
Users and permissionsWho uses the tool, and who can do what?Technician: enters. Area manager: approves. Accounts: read only
Current processHow is the work really done today?The life of a job sheet, from site visit to archive, detours included
Business rulesWhich conditions, calculations and exceptions?"A job over 4 hours needs manager approval"
DataWhich information, where it comes from, what is the sourceCustomers, sites, jobs, parts, time spent
IntegrationsWhich systems must the application exchange data with?ERP, accounting software, company directory (single sign-on)
ConstraintsSecurity, data protection, hosting, mobile, accessibility"Data entry must work offline and sync when the signal returns"
Acceptance and supportHow do you accept it, and who maintains it afterwards?Testable criteria, milestones, maintenance and change requests

Order matters. Goals and scope shape everything else. A business rule only makes sense when it is tied to a goal, and an integration is only justified if data really has to move.

Business rules: the heart of the document

This is the most useful section and the one most often rushed. Screens are quick to sketch; rules do the work, and they drive the price. A well written rule fits in one sentence of the form "when this happens, the system does that", followed by its exceptions.

  • Usable: "When a job exceeds 4 hours, it moves to the status 'awaiting approval' and the area manager is notified. Exception: jobs under an annual maintenance contract are approved automatically."
  • Useless: "The system handles approvals."

Look for rules where they hide: in spreadsheet formulas, in "notes" columns, in cells someone colours by hand, in the "we always do it this way" of each team. If your process lives in an Excel file today, that file is already a large part of your requirements, as we explain in replacing Excel with a custom application.

Testable requirements, not intentions

Each requirement must be testable. Adjectives are not.

Vague wordingTestable wording
The application must be fastToday's job list loads in under 2 seconds on a phone over 4G
The tool must be easy to useA technician completes a job sheet unaided after a 15 minute demo
Data must be secureEvery user signs in with a named account, and every change is logged
It must be possible to exportMonthly CSV export with the columns listed in the appendix

The thresholds in the right column are examples. Set your own, based on what your teams actually live with. What matters is that they exist, because they become your acceptance criteria. Our user acceptance testing checklist shows how they are used at delivery.

Prioritise: not everything is essential

A document where everything is mandatory leaves no room on price or deadline. The MoSCoW method, popularised by the DSDM agile framework, sorts each requirement into four levels:

  • Must have: without it, the tool is pointless;
  • Should have: important, but a first version can live without it;
  • Could have: welcome if the budget allows;
  • Won't have (this time): left out of this version, and written down as such.

The last category is the most valuable. Writing down what is not requested stops a vendor from pricing it in "just in case", and stops a user from demanding it during acceptance testing.

What to leave out

  • An imposed technical solution with no in-house expertise behind it. The language, database and hosting provider are the vendor's choices, and the vendor must justify them. You set the constraints (hosting in the EU, sign-in through the company directory), not the architecture.
  • Pixel-perfect mockups drawn in a slide tool. They freeze design choices before anyone has tested the journey.
  • "Just in case" features. Each one has a development cost, then a maintenance cost for the whole life of the application.

Constraints: security and data protection from day one

An internal application almost always handles personal data: staff names, customer contact details, sometimes more sensitive information. The GDPR requires data protection by design (Article 25) and a written contract with any vendor that processes data on your behalf (Article 28). The UK GDPR carries the same obligations. The requirements document is the right place to state:

  • which personal data the tool holds, and why;
  • who can access it, by role;
  • how long it is kept;
  • where the application is hosted.

These four lines cost little to write and avoid expensive rework once the application is built. Our GDPR checklist for a business application goes further.

A condensed example

Here, for illustration, is the core of a requirements document for a field job tracking tool:

Goal: stop re-typing job sheets and shorten the time to invoice. Users: twelve field technicians, two area managers, one person in accounts. Rules: a job over 4 hours needs approval; parts used are deducted from stock. Data: customers and sites from the ERP, parts from the catalogue. Integration: approved jobs flow back into the ERP for invoicing. Constraints: offline data entry, named accounts, hosting in the EU. Out of scope: invoicing itself.

Ten lines, and a serious vendor already knows which questions to ask. The flow back into the ERP alone deserves a proper conversation; we cover it in integrating a custom application with an existing ERP.

From document to prototype

Even well written, a requirements document is text, and text can be read in several ways. "The manager approves the job" does not say whether approval happens on a phone, in batches or one by one, or what the manager sees before approving. These questions often surface only during acceptance testing, when answering them costs the most.

A visual prototype closes those gaps: real screens, real journeys and realistic data that your team can comment on before any code is written. The document says what must be done; the prototype shows how it will be done. They work together, and the validated prototype often becomes the reference for the quote, as we explain in see your software before you pay for it.

Checklist before you send it

  • Goals are measurable, and each says how you will know it is met.
  • The scope also lists what is excluded.
  • Every user role has its permissions described.
  • Business rules are written as "when... then...", with their exceptions.
  • Every piece of data has one named source, and only one.
  • The systems to connect are named, with a contact person for each.
  • Every requirement can be checked with a yes or a no.
  • Requirements are prioritised, including what is left out for now.
  • Personal data, retention periods and hosting are specified.
  • Life after launch is planned: who maintains the tool, and how changes are requested. Our article on business application maintenance explains what that budget line covers.

A document that passes this list can be quoted seriously. It also helps you pick the right contract model, which we compare in fixed price vs time and materials, and understand what will drive the cost of the application.

No time to write it?

That is common, and it is not a blocker. At LPR Studio, one first conversation is enough: you describe the problem, share the files and documents that carry it today, and within 5 working days we present a free visual prototype on a video call. If the project goes ahead, it serves as the requirements baseline, and you choose the model that suits you: fixed price, a subscription with no upfront development cost, or a SaaS product we publish and run.

Frequently asked questions

What should a requirements document for an internal application include?

It should describe the problem and its measurable goals, the users and their permissions, the current process, the business rules and their exceptions, the data involved, the systems to connect, the security and data protection constraints, and the acceptance criteria. It describes the need and how to verify it, not the technical solution.

Who should write the requirements for an internal tool?

Write them with the people who will do the work in the tool, not only with management or IT. One owner holds the pen and settles disagreements, but the users describe the real process, its exceptions and its workarounds. Without them, the document describes an ideal process that nobody actually follows, and the software inherits that gap.

Should a software requirements document include a budget?

Yes, an indicative budget range helps vendors propose a realistic scope instead of the most expensive answer. It does not fix the final price, which depends on business rules, integrations and data migration. Without a range, two proposals for the same document can describe two very different applications, and their prices cannot be compared.

Functional or technical requirements: which should the client write?

When an outside company builds your internal application, write functional requirements: what the tool must let people do, for whom, with which rules and constraints. The technical specification, covering architecture and technology choices, belongs to the vendor, who must justify it. Imposing a technical solution without in-house expertise means carrying a risk you cannot manage.