1. Define the problem before the interface
“Build a portal with a dashboard” describes a form, not a need. Start with an event: a manager gathers order status from three sources and cannot identify the delay. You can then consider several responses, including configuring a report, exchanging data or creating a separate tool. Do not commit to the most expensive option before investigation.
Identify the recipient and what they will do differently. A supervisor might need to find confirmed orders without a next action and assign ownership. That is more concrete than improving control. Include an anonymized example and a way to verify that the problem occurs.
Distinguish the objective from its measure. Less manual copying is a direction; handover count or preparation time may be measures. Agree numerical targets after establishing a baseline rather than inserting an unsupported cost-saving promise.
2. Bound the workflow and first phase
Record the starting event, completion condition and participants. For warehouse handover, the start might be approved confirmation and the end a visible task with specific items and an owner. Payment, delivery and returns can be connected processes without all belonging in the first phase.
An exclusions list prevents conflicting expectations. Explicitly state if historical attachments, offline operation or inventory changes are outside scope. Exclusion does not mean a feature is unimportant; it may belong to a later phase requiring a separate decision.
Describe dependencies. Who provides exports, a test environment and field explanations? What if a supplier does not support the required operation? Mark unknowns as questions with owners. Do not turn assumptions into hidden guarantees. The initial specification should make uncertainty visible rather than disguise it with confident wording.
3. Turn requests into user scenarios
Atlassian explains user stories through a user, their goal and value. This is a useful conversation starter, but a short story cannot replace data definitions and verification. The structure below is Routio’s practical proposal, not a mandatory Atlassian standard.
Teaching example: a manager wants to see orders that failed to reach the warehouse so exceptions can be handled. Define what failure means, the period, which records the manager can see and which actions are permitted. Without those details, two developers can implement different outcomes while apparently satisfying the sentence.
For each scenario, specify prerequisites, action and expected state. Include missing data, insufficient permission and unavailable services. Avoid prescribing every pixel unless it affects the task. Work sequence, clear messages and the ability to complete an operation matter more than decorative detail.
4. Agree data definitions and sources
Each object needs a definition and identifier. A customer might mean a person, company or account; an order may contain several lines. Explain what one row represents, required fields and where values originate. This prevents matching errors before implementation.
Specify date formats, timezone, units, empty-value rules and allowed statuses. A missing amount, zero and not-yet-known are not necessarily interchangeable. If directories use different codes, define the mapping and who maintains new entries.
An anonymized structure is sufficient initially. Do not include passwords, tokens or the complete customer database in a document sent to several suppliers. Agree access to working records, transfer methods and storage separately. The specification should describe required permissions, not contain access secrets. Also identify which examples are synthetic so they cannot be mistaken for production records.
5. Describe integrations as explicit agreements
“CRM integration” does not define scope. Name the objects, direction, trigger and authoritative system for each field. Changing an address after warehouse release may follow different rules from creating an order. Do not assume every field needs two-way exchange.
Describe repeated requests, missing fields, unavailable services and delayed updates. A timed-out request may already have completed. Agree how to establish the result instead of providing only a resend button. Technical implementation follows verification of the actual APIs.
Include operating conditions: where errors appear, who handles them, what information supports investigation and how recovery is confirmed. An empty error log does not prove every record transferred. Separately verify completeness over an agreed period or reference sample. Define the recipient of an unresolved exception, not merely the system that stores it.
6. Make acceptance criteria observable
A criterion describes a result someone can check. “A convenient interface” needs a user, task and conditions. A manager with specified permissions finding a failed order, reading its cause and assigning it is testable. If execution time matters, agree device, workload and threshold before testing.
Include denied access, incomplete inputs and repeated actions, not only success. Correct behaviour may be a safe stop with an explanation rather than automatic completion at any cost. Identify who accepts the result and where evidence is recorded.
Separate requirements from implementation choices. Users may need edits preserved while the precise concurrency mechanism belongs to technical design. When a particular constraint is mandatory because of infrastructure or policy, explain why. This prevents a necessary limitation being confused with the author’s personal preference and helps evaluate alternatives fairly.
Turn a request into a check
Teaching examples. Add your roles, data and agreed boundaries.
Scroll horizontally to read the table.
| Request | Refined requirement | Verification |
|---|---|---|
| A convenient issue list | Managers see their untransferred orders and causes. | Reference records appear under their permissions without restricted third-party data. |
| No duplicates | Repeating the same operation does not create another order. | Repeat a reference request under the agreed contract and reconcile the result. |
| A current report | Refresh time and missing required sources are visible. | Delay one test source and verify the warning. |
Takeaway. These examples do not prescribe implementation. Verify mechanisms and limitations with the technical owner.
7. Include access, workload and support
Describe roles through allowed actions: viewing, creating, correcting, approving and exporting. Do not grant everyone administrator access to simplify launch. Test with future users’ permissions, including cover staff. Identify who genuinely needs confidential fields.
For performance, describe record volumes, concurrent work and peak patterns. “Must be fast” provides no testing conditions. User count is not the same as simultaneous request count. If measurements are unavailable, include them in preparation instead of inventing a precise target.
Assign backup, recovery verification, maintenance and incident communication. Clarify the agreed handover: documentation, configuration, repository access or a support procedure. A working result needs a maintainable future. State any operating dependency on a particular account or machine so the team can assess what happens when it becomes unavailable.
8. Prioritize complete work rather than isolated features
The first phase should complete an end-to-end scenario. Fields and buttons are not a useful launch if the user still cannot hand an order over. Separate essentials from improvements and expansion. Ask the process owner to confirm that distinction.
For deferred requirements, keep the reason and condition for reconsideration. An extra sales channel may wait for the main flow to be verified. Access controls or protection against a repeated critical action should not become optional merely to launch faster. Priority also depends on risk.
When a requirement changes, assess its effect on data, integrations, tests, instructions and open transactions. Record the decision and document version. Do not silently edit approved scope. Both the team and supplier need to know which version they are implementing and accepting, particularly when several people contribute requirements.
9. Walk through the specification together
Bring together the process owner, future operator and technical owner. Follow a reference scenario using the document without supplying undocumented verbal agreements. When participants expect different behaviour, record the question and add the decision to the text.
Check connections between sections. Does the user have permission for the required action? Does the report field have a source? Is training included for the new sequence? Contradictions between sections can matter more than another page of detail.
You cannot anticipate every future change. Know what has been verified and how unknowns will be investigated. If API support or export quality remains uncertain, agree a small discovery phase with a concrete output. That is more useful than a final estimate based on unmarked assumptions. Keep the evidence available for the later design and acceptance discussions.
10. A reusable structure for your project
Copy the list below into an internal document and complete it for one workflow. Replace phrases such as modern and reliable with context and verification. Keep unresolved questions separate and assign owners. A short explicit specification is easier to test than a long document full of ambiguous promises.
Before sending it to a supplier, review it with the people doing the work. They may reveal exceptions invisible in management reports. After estimation, confirm that both sides interpret scope, dependencies and exclusions consistently. An approved heading does not remove differences in understanding.
Keep the document usable after launch. Link accepted scenarios to instructions and record later rule changes. The specification can then explain why the system behaves as it does instead of becoming an abandoned procurement attachment.
- Objective, current problem, participants and first-phase boundaries.
- Normal flow, exceptions and permitted role-based actions.
- Objects, fields, keys, sources and quality rules.
- Integrations, retries, failures and completeness checks.
- Acceptance criteria, reference data and test owners.
- Transition, training, recovery, support and change control.
Official sources
Primary sources for definitions and further reading. Routio’s practical examples are educational, not customer case studies. Verify system configuration against the documentation for your version.