Skip to content
Language: English

How to write system requirements that cannot be misread

The business owner writes “We want an easy screen,” the developer understands something else, and the gap shows up after delivery. Here is a practical way to write system requirements that two different people read and understand in the same way.

A business owner writes, “We want an easy screen for entering orders and a quick sales report,” and the developer reads the same sentence and understands something else. Neither of them is wrong; the sentence can mean more than one thing. And when the gap shows up after delivery, fixing it costs far more than clarifying it before development would have.

Clear requirements aren’t a long document. They are a text that two different people read and understand in the same way. In this article we look at where misunderstandings usually happen, how to write requirements in a way that reduces them, and how to review them before they reach the development team.

Why requirements get misread

The cause is rarely a lack of competence. There are four recurring causes, and you can spot them in any requirements document before development starts:

  • Vague words: “fast,” “easy,” “flexible,” and “when needed” don’t describe behavior that can be tested. What is fast for a manager may be slow for an employee who enters hundreds of orders a day.
  • Hidden business rules: employees know that an order isn’t shipped before the customer’s credit limit is checked, but no one wrote it down because it’s “common knowledge.”
  • Missing exceptions: the requirement describes only the usual case and says nothing about an order canceled after it has been prepared, a partial return, or a customer who pays in installments.
  • No acceptance criteria: the two sides don’t agree in advance on what “done” means, so they discover the difference at delivery.

Suppose a requirement says, “Customer search must be fast.” The developer may take it to mean searching by full name, while the salesperson means searching by part of a mobile number during a call. The same requirement has produced two different systems.

This gap doesn’t show up in meetings, because each side hears the word and fills it with what they know. It shows up when the employee sits down at the screen for the first time, which is the most expensive moment to correct it.

The remedy isn’t deleting these words but translating them into behavior. Instead of “easy to enter,” write: the employee enters the order from a single screen, selects the customer by searching for part of the name or the mobile number, and prices are filled in automatically from the approved price list.

User stories: who, what, and why

A user story is a short sentence that ties each requirement to a person and a goal. Its usual form is: as someone in a given role, I want to do something, so that I achieve a result for the business. The value of the form lies in its last part: “so that” explains the reason for the requirement, and the reason is what lets the team suggest a simpler solution when one is possible.

A hypothetical example: “As a storekeeper, I want to see the orders approved for shipping sorted by delivery date, so that I can prepare urgent shipments first.” This sentence defines the user, the screen, the sort order, and the reason, and it doesn’t mention any technology.

Write one story for each goal, and keep it small enough to be built and tested on its own. A story that needs a whole paragraph to explain is usually several stories that should be separated.

Avoid starting a story with the screen or the button. “I want a button to export orders” describes a solution, whereas “I want to send today’s orders to the shipping company before noon” describes a need that may have a simpler solution than exporting.

Business rules and exceptions: write down what “everyone knows”

Business rules are the conditions that govern what happens in the system regardless of the screen: who approves what, when an order is rejected, and how a discount is calculated. Write each rule as a single sentence in plain language, and put it in a numbered list so it can be referred to by its number in stories and tests.

Suppose a distribution company writes its rules as follows:

  1. An order that would take the customer’s outstanding balance over their credit limit is not shipped unless the sales manager approves it.
  2. A discount above the sales rep’s allowed limit needs the branch manager’s approval.
  3. An order cannot be canceled once it has left the warehouse; it is handled as a return.
  4. Stock is reserved when the order is approved, not when it is entered.

Notice that each rule states the condition, the outcome, and who can grant an exception, if there is one. If two employees word a rule differently, that is a difference in the work itself, and it has to be resolved before development, not during it.

Then write out the exceptions explicitly for each story: what happens if the quantity is only partly available, if the branch closes before the order is approved, or if the employee enters a duplicate customer. An exception that isn’t written down doesn’t disappear; it shows up after launch and gets solved in a hurry.

Acceptance criteria and examples of inputs and outputs

Acceptance criteria turn a story into conditions that can be checked: if all of them are met, the story is done; if even one is missing, it isn’t. They are written for each story separately, and they describe what the user sees, not how it is coded. For the storekeeper’s story above, the criteria could be:

  • Only approved orders appear in the list; pending or canceled orders do not.
  • Orders are sorted by delivery date, the nearest first.
  • An order that has passed its delivery date is highlighted.
  • The storekeeper sees neither selling prices nor credit limit details.

Add examples of inputs and outputs wherever there are calculations or conditions. A hypothetical example: a customer with a credit limit of fifty thousand and an outstanding balance of forty thousand orders goods worth fifteen thousand.

The expected output under the first rule: the order is saved with the status “Pending approval,” the sales manager receives an alert, and no stock is reserved yet. A single example like this settles a discussion that could have gone on for days, and it becomes a ready-made test case.

A shared language, review, and approval

A glossary of terms

Every organization uses words with meanings of its own. To sales, an “order” may mean a price quote, while to the warehouse it means a shipping order. Write a short glossary that defines every term that recurs in the requirements, and use each term with the same meaning in the stories, the rules, and the screens.

A hypothetical glossary entry: “An active customer is a customer with an approved order in the last three months.” A short definition like this determines what appears in reports and in the sales reps’ lists, and it stops each department from counting active customers its own way.

Reviewing with the people who do the work

A review done by the manager alone is incomplete. The manager knows how the process should run; the employee knows how it actually runs. Read the stories and rules with the people who will use the system, and ask them to walk through a real case from their work last week, step by step.

At each step, ask: what do you do if things don’t go as written? The answer to that question uncovers more exceptions and hidden business rules than any meeting with management. Record what is agreed in the document itself, not in separate minutes.

Who approves

Decide who approves each part: the decision-maker approves the scope and the priorities, and the owner of each process approves its rules and exceptions. An approved requirement changes through a written change request, not a passing remark in a meeting. If the decision-maker hasn’t been identified yet, the article “Five questions before you start any software project” may help you identify them.

For each requirement, keep a record of when it was approved and by whom, so that everyone knows which version is the reference when two people disagree.

A checklist before a requirement reaches development

  • The requirement has a user story that states the role, the action, and the reason.
  • It contains no vague words such as “fast” or “easy” without a description that can be tested.
  • The business rules linked to it are written in the numbered list and referred to by their numbers.
  • Known exceptions are written down, along with what should happen in each one.
  • Each story has acceptance criteria that can be checked one by one.
  • Every calculation or condition has an example of inputs and expected outputs.
  • The terms used are defined in the glossary with the same meaning.
  • The people who will use it have reviewed it, and the decision-maker has approved it.

A clear requirement is one that two different people read and build the same thing from.

Clear requirements don’t need special tools, only discipline in writing and reviewing. This work is the core of business analysis: turning what your team knows into a text the developer can build on without guessing. You can discuss your situation with the ITS team, and we can start together with a discovery session to review your current requirements before development.

Related serviceBusiness analysis and product consulting

Share this articleLinkedInXWhatsApp