Start with the situation, not a shopping list

A request such as “we need a customer portal” already suggests a solution. It does not explain the problem. Ask what customers cannot do today, how staff handle that gap and which consequences matter. Perhaps customers need an accurate delivery date; perhaps staff simply need a reliable way to send one. Those situations could justify quite different projects.

Requirements analysis makes these distinctions visible before a preferred tool dominates the discussion. It is useful when you buy software, redesign a booking process, commission a website or change an internal handover. The amount of documentation can vary, but the questions remain relevant even when only two people are involved.

Collect evidence from the actual work

Speak with the people who request the change and those who will live with it. A manager may see slow reporting while a receptionist sees incomplete customer information. Both observations matter. Include less frequent users and people handling exceptions, because the normal path rarely reveals every necessary requirement.

Observe a real task where possible. Ask someone to show the last troublesome order instead of describing an ideal week. Remove identifying details before sharing examples. Record what you saw separately from your interpretation: “address entered twice” is an observation; “we need a new database” is a proposed answer. This separation makes later discussion more productive.

Sort different kinds of requirement

Functional requirements describe capabilities, such as changing a delivery address before dispatch. Quality requirements describe how the service should behave, including understandable instructions, response under expected demand or recovery after interruption. Constraints describe boundaries, such as an existing accounting connection or an agreed operating environment.

Business rules also deserve their own attention. Who can approve a refund? When does a booking become binding within your process? Which information belongs to which record? If these rules remain hidden inside informal habits, a new system can faithfully reproduce the screen design while missing the work itself. A workflow sketch often exposes these gaps quickly.

An illustrative repair shop example

Imagine a fictional bicycle repair shop replacing its paper intake forms. The initial request is a mobile app. During observation, the team discovers that unclear repair approval causes more trouble than the paper itself. Customers cannot tell whether a quoted repair has started, and staff sometimes call the same customer twice.

A clearer requirement is that staff can record a proposed repair, send it for approval and see whether approval has arrived. Another states that an unapproved repair remains distinguishable from approved work. The team also needs a way to handle customers without email. None of these requirements forces a mobile app; a simpler service might satisfy them.

Make requirements testable without overdesigning

Words such as fast, easy and modern express wishes but leave room for disagreement. Describe the situation, the action and the observable result instead. For the repair shop, an acceptance example might say that a staff member opening a job can identify which repairs await approval without reading the full conversation history.

You can add precise limits when you have a reason for them, but do not invent numbers to make a sentence look rigorous. Testability can come from a clear state change or a completed task. A prototype can help people discuss difficult interactions before the team chooses detailed implementation rules.

Resolve conflicts and preserve the reason

Requirements often compete. More mandatory fields may improve reporting while slowing intake. Restricting access may protect sensitive information while making cover during absence harder. Name the tradeoff and the person who can decide it. Do not hide disagreement by combining incompatible requests into one impressive document.

Use prioritisation to distinguish essential needs from useful additions. Keep a short reason and an evidence source beside each important requirement. When someone later questions a decision, the team can revisit the original need instead of guessing why the feature exists. Record unresolved assumptions visibly, with an owner and a next step.

Keep a small, usable requirements register

For a modest project, a table can hold an identifier, requirement, reason, priority, acceptance example, owner and status. Link related decisions instead of copying them into several places. A requirements specification may collect the agreed view when you need a stable basis for supplier discussions.

Review the register when new evidence appears. A changed requirement is not automatically a planning failure; it may reveal that the team learned something important. However, assess the effect on scope, existing decisions and work already completed. Clear change handling prevents a useful learning process from becoming an unlimited promise to deliver every request.

A check you can run today

Choose one request currently waiting for implementation. Ask who needs it, which task it supports, what happens without it and how you would recognise an acceptable result. Then ask the person doing the task to describe an awkward case. If the requirement only survives the normal case, it probably needs another conversation.

Finish by distinguishing confirmed needs from assumptions. You do not need certainty about everything before starting, but you do need to know where uncertainty remains. That makes it possible to choose a small next step that reduces a meaningful risk instead of committing to an entire solution too early.

Common questions

Does every project need a long requirements document?

No. A short shared record can be enough when the work is limited and people can resolve questions quickly. More parties, dependencies or consequences usually justify more explicit detail. The useful measure is whether people can make and check decisions, not how many pages they produce.

Who should own the analysis?

One person should coordinate it, but users, operational staff and people delivering the solution should contribute. The coordinator makes disagreements and gaps visible. They should not quietly replace other people’s needs with their own preferred design.

Sources and further reading