Requirements

Mobile App Requirements Document: What to Include, and What to Plan For

Requirements for an app come from two places. One of them you can write down before anything is built: how the process runs today, who uses it, the flows that carry the business, the systems it has to connect to. The other arrives later, when the app meets real work, and it is often the one that decides whether anyone uses the product. On a field service build we delivered, it was that the work timer had to keep counting while the phone is locked, and keep counting while the technician places a call from inside the app. That requirement did not exist until somebody was standing on a real job with the screen off. This guide covers what belongs in the document, where the second kind of requirement tends to come from in different types of product, and what to settle in the contract so that it costs you a decision rather than an argument.

Thomas SiudutThomas SiudutCo-Founder and CEO, Apps Value August 3, 20269 min read
Requirements Scope Fixed price
The short version
  • The document's job is to make the work priceable and agreeable, not to predict it. Written to that standard it takes days, not months, and the extra months rarely buy accuracy.
  • The requirements that decide adoption appear in the real environment. They arrive during or just after development, when your own people use the thing on real work.
  • Which discoveries you get is predictable by product type. Field service, booking and marketplace products each have their own, and a supplier who has shipped one will name them before you ask.
  • What the document cannot hold, the contract has to. What acceptance means, what separates a defect from a change, and who pays in each case.

What the document is actually for

A requirements document does two jobs. It lets somebody price and sequence the work, and it records what was ordered so that two parties can later agree whether it arrived. That is the whole brief. Once it does those two things well, more pages stop adding value and start adding false confidence.

Most documents we receive are over specified in one direction and thin in the other. There are thirty screens described down to the button labels, and nothing at all about the conditions the app has to survive. Screens are easy to imagine at a desk. Conditions are not, and conditions are what break products.

The parts that carry real weight:

  • What happens today without the app. There is always an existing process. Phone calls, a spreadsheet, a whiteboard, someone remembering. Write it down as it actually runs, including the parts nobody is proud of.
  • Who uses it and under what conditions. A technician in gloves in a basement with no signal and a founder at a desk need different products even when the feature list is identical.
  • The flows that carry the business, not every screen. Three or four sequences usually account for the value. Say what has to be true at the end of each one.
  • What it must connect to, and who owns access. Payments, maps, an existing CRM or ERP. The integration is rarely the hard part. Getting the credentials is.
  • What would make this a failure even if every screen works. Usually adoption or a number in the business. If it is not written down, nobody is building toward it.

If the scope is still genuinely open, that is an earlier conversation than a document, and it belongs in a discovery workshop rather than in a folder of wireframes.

The requirement that did not exist yet

On TimeFix, a field service product, technicians track working time inside the app. The assumptions covered starting and stopping the timer, which is the obvious part. What the assumptions could not cover was that the timer has to keep counting when the technician locks the phone, and keep counting when they place a call from inside the app itself.

Read that as a sentence and it looks like something anyone would have specified. It is not, and the reason is worth understanding. Nobody sits at a table writing requirements and pictures the moment a technician puts the phone in a pocket to carry a part across a site, or taps a customer number from the job screen. The requirement is invisible until the behavior is real, and then it is obvious and urgent, because a timer that resets is worse than no timer at all.

This is the normal case, not an unusual one. Any product that sits on top of a working process will produce a handful of these. They do not appear because someone was careless during requirements. They appear because a process contains knowledge that nobody has ever had a reason to write down.

Which is why the plan matters more than the document. Your own people need to put the app in front of real work during or just after development, not the week before launch, and the schedule has to have room left for what they find.

Field service: specify the conditions, not the features

For field service products the feature list is usually the easy half. Jobs, forms, photos, time, signatures. The half that decides whether crews use it is environmental, and it is almost never in the brief.

  • Offline writing, not just offline reading. Showing a cached job list without signal is straightforward. Accepting a completed report, queuing it, and resolving what happens if the office edited the same job meanwhile is a different piece of work. Say which one you need.
  • Photo upload on a weak connection. A technician should not be standing in a plant room waiting on a progress bar. Decide whether the app uploads in the background and lets them move on.
  • Form versioning. Checklists change. When they do, jobs already completed under the old version still have to render correctly a year later for whoever asks.
  • Battery and background behavior. Location and timers running all shift have a cost, and both operating systems are aggressive about suspending them.
  • Shift boundaries. What the app does with work that crosses midnight, or a job left open when someone goes home, is a business rule, not a technical detail.

A supplier who has shipped this kind of product raises these while you are still describing the idea. If none of them comes up, that is information.

Booking: the requirements hide at the edges of the calendar

A booking product looks in a document like a calendar and a confirmation email. What it actually is, is two people agreeing on a slot, which means most of the engineering lives in the cases where that agreement fails.

  • Taking a slot is two steps, not one. There is a window between choosing and paying, and during that window someone else can choose the same slot. Decide how long you hold it and what the second person sees.
  • Time zones and daylight saving. If either side can be in a different zone, every stored time needs a defined meaning. Recurring bookings across a clock change are where this becomes visible.
  • Editing a recurring schedule that already has bookings. A provider changes their Tuesday hours. What happens to the eleven appointments already in the diary is a policy decision that somebody has to make, and it will not be the developer.
  • Cancellation part way through payment. Money captured, booking not created, or the reverse. Rare, and the one your support inbox will remember.

Before EveSport went public, trainers from top gyms ran real sessions through it with their own clients. That is the point at which a booking product stops being a set of screens and starts being a schedule two people have to honor.

Marketplaces and subscriptions: there is a reviewer you did not list

If your product is a marketplace or carries subscriptions, there is a stakeholder in your project who never appears in a requirements document, and they can hold your launch.

Apple protects its own interest at review, and one of the things it checks is whether payments in your model should be running through in app purchase rather than outside the app. It does not always read a business model correctly on the first pass. In practice this is resolved by explaining the model rather than rebuilding anything, but it takes days, and for these product categories it is predictable enough to plan around.

What belongs in your document is therefore not a technical answer but a clear description of who pays whom for what, and what is being bought. That description is what gets sent to a reviewer. Vagueness there costs calendar time later.

A useful test on the first call

Describe your model, including the payments, and then stop talking. If the other side has shipped products like yours, the review question comes up unprompted. If it never comes up, you have learned something about their experience without having to ask for references.

The section worth adding: what you owe the project

Requirements documents describe what will be built. It is worth adding a short section describing what has to arrive from your side for the building to finish, because that is the single most common cause of delay in our projects. Three lines with names and dates against them is enough.

  • The Apple developer account. Our most common source of delay by a distance. Enrolling an organization needs legal entity details and a person inside your company with authority to accept the terms. It cannot be done for you, and a finished build waits for it.
  • Credentials for third party services. Payments, maps, analytics, the existing system it connects to. Each one usually requires somebody outside the project to act, which is why it takes weeks rather than hours.
  • One named person who can approve. Several people who can comment and none who can decide is more expensive than any technical problem in this article.

There is a longer version of this in what each stage of a build asks of you.

What you cannot predict, you put in the contract

If the useful requirements surface after the document is signed, the document cannot be the thing that protects you. The contract is.

Settle three questions before any money moves. How acceptance works: which document closes delivery, against what criteria, and who signs it. We close with a signed acceptance protocol, which is not software industry language and will be familiar to anyone who has ever bought a machine or a fit out. Without a defined end there is no agreed line between what you already paid for and what is now billable extra.

Second, what separates a defect from a change request, in words, before you need the distinction. Everything inside the agreed scope has to work, and fixing it when it does not is the supplier's responsibility rather than a line item. On larger contracts we back that with a one year warranty on the software. Other companies cover the same ground through a paid monthly plan. Both are legitimate positions and they are different prices for the same project, so get it stated.

Third, how a genuine change gets priced and how long agreeing one takes. A fixed price with a rigid scope and no mechanism for what real use reveals is as risky as an open ended hourly arrangement, only in the opposite direction. One lets the budget run. The other makes you launch something your team works around. How fixed price delivery works covers where we draw those lines, and what to check before choosing a company covers how to read the answers you get.

Version one is a scope decision, not a documentation problem

There is a failure mode where a business responds to all of the above by writing more. If the document cannot be complete, the reasoning goes, at least it can be exhaustive. In practice that produces a heavier specification, a longer estimate, and exactly the same discoveries three months later.

The better response is to make the first version small enough that the discoveries are cheap. Build the flow that carries the business, run the rare cases by hand for a while, and postpone anything whose value depends on volume you do not have yet. That is the reasoning behind MVP app development for startups, and it applies just as well to an established company automating one process.

If the team building it is not in your city

None of this changes when the work is done by a team elsewhere, but the thing that matters changes. The usual worry is overlap hours. The real question is who can decide and how quickly a discovery turns into a priced answer.

A requirement that appears on a Tuesday in a warehouse is not resolved by having somebody online at that moment. It is resolved by having one person on each side who can make a call, a written scope precise enough to say whether the thing is inside it, and an agreed route for pricing it if it is not. Teams in the same building get this wrong regularly. Teams several hours apart get it right when the mechanism exists.

We work this way with clients across Europe and the United States, including app development for New York businesses, from a team of Flutter developers in Poland. The clients who find it easy are the ones who named a decision maker in week one.

What this comes down to

Write the document to the standard that lets somebody price the work and lets both sides say later whether it arrived. Spend the effort you save on three things instead: the conditions the app has to survive, the list of what you owe the project and when, and the contract terms that decide what happens when real use produces a requirement nobody could have written.

Then plan for that requirement, because on any product that sits on a working process, it is coming.

FAQ

What should a mobile app requirements document include?

How the process runs today without the app, who uses it and in what conditions, the three or four flows that carry the business, the systems it must connect to and who owns access to them, and what would count as failure even if every screen works. Screen by screen detail is the part teams overinvest in and the part that changes most.

How detailed does it need to be before an agency can quote?

Detailed enough to price and sequence the work. That usually means the flows, the integrations, the user conditions and the non negotiable business rules. If a supplier quotes from less than that, the number is a guess, and the gap will reappear later as a change request.

What happens when a requirement appears after development has started?

That is normal on any product built on a working process, so the useful question is what the contract says about it. Agree in advance what separates a defect from a change, how a change is priced, and how long agreeing one takes. Without that, the same discovery becomes an argument instead of a decision.

Should we write the requirements ourselves or have the agency do it?

You supply the operation and the constraints, because nobody outside your business has them. A supplier who has shipped similar products should turn that into a scope and challenge the parts that will not survive contact with real use. If they take a feature list and quote it back without questions about the process, they are pricing a description.

Do we need wireframes before talking to a developer?

They help and they are not a prerequisite. A clear description of the current process and the flows that matter is worth more than a screen set, because wireframes tend to lock in an interface before anyone has agreed what the product has to achieve.

How do we stop the scope growing once real use reveals gaps?

Keep the first version small, run the rare cases manually at first, and hold a written scope that is precise enough to answer whether a given request is inside it. Most scope growth is not caused by discoveries. It is caused by there being no agreed line to measure them against.

Thomas Siudut, Co-Founder and CEO of Apps Value
Written by
Thomas Siudut

Co-Founder and CEO, Apps Value

Thomas takes the first call on most Apps Value projects. He spends it working out what your operation actually needs, what belongs in version one and what does not, and whether building anything is the right move yet. If it is not, he will tell you on that call. If it is, you get a written scope and a fixed price before a line of code exists.

Send us the process, not the feature list

Describe how the work runs today and what it costs you. You will get a straight answer on what belongs in version one, which parts of it will only be settled once real users touch it, and a written scope with a fixed price before anything is built.

Book an intro call

30 minutes, no preparation needed.