Turnkey app

[ Blog · For business ]

How to write a mobile app specification so you don't overpay

Deniel Sonis Studio4 min read
Как составить ТЗ на мобильное приложение, чтобы не переплатить

Most budget overruns in development happen not because of "bad programmers" but because the client and the studio understood the task differently. A technical specification is the only tool that protects both sides from this. Here is how to write a spec that yields an accurate estimate without turning into a hundred-page tome.

Why you need a spec when "everything is obvious"

"Make it like Uber, but for hair salons" sounds exhaustive until you start counting: how many roles, what booking logic, what happens on cancellation, how payments are taken, whether chat is needed. Each of these questions is days of work. Without a spec the studio either builds risk into the price (you overpay) or estimates optimistically (you overpay later, on rework).

A good spec does three jobs: it fixes the scope, serves as the basis for the estimate, and becomes the acceptance criterion — "done" means "matches the spec".

Structure of a mobile app specification

1. Goals and context

Two or three paragraphs: what the business is, what problem the app solves, who the users are, how you will measure success. For example: "An app for a chain of 12 beauty salons. The goal is to move 60% of bookings from phone to online within six months and reduce no-shows with reminders."

This is not a formality. Understanding the goal, the team suggests solutions you did not think of and talks you out of features that do not serve it.

2. User roles

List everyone who will use the app and what each can do. Customer, stylist, salon administrator, chain owner — four roles, four sets of screens and permissions. The number of roles is what most often doubles a budget, so it is better to see it before the start.

3. User flows

The most important part. Describe how each role completes its tasks, step by step:

The customer opens the app → picks a salon on the map or from a list → selects a service → sees available stylists and times → confirms the booking → receives a push 2 hours before the visit → can rate the stylist afterwards.

Do not forget the "unhappy" paths: what happens when a booking is cancelled an hour before, when the stylist is sick, when a payment fails. They hide half the complexity.

4. List of screens and features

Based on the flows, compile a list of screens with a brief description of the elements on each. No drawings needed — text is enough: "Booking screen: 30-day calendar, 30-minute slots, taken slots greyed out, the 'Book' button active only after a time is chosen".

It helps to split features into three groups: must-have for launch, nice-to-have, and "someday". That lets the studio propose an MVP that fits the budget.

5. Integrations

List every external system: payment gateway (which one exactly), CRM, SMS provider, maps, social login, accounting, analytics. For each — whether API access and documentation exist. Integrating with a system without a proper API can cost more than half the app.

6. Admin panel

Often forgotten, yet it is a separate product. Who will manage what: services and prices, stylist schedules, content, push campaigns, reports. The more detail, the more accurate the estimate.

7. Non-functional requirements

  • Platforms: iOS and Android? From which minimum version?
  • Languages: one or several.
  • Load: how many users you expect in the first year.
  • Offline mode: needed or not.
  • Security and data: whether personal, medical or payment data is stored; GDPR and local legal requirements.
  • Design: whether a brand book exists, references to apps you like.

8. Constraints and expectations

Budget range, desired launch date, who on the client's side makes decisions and how fast. Stating a budget does not mean "overpaying": it lets the studio immediately propose a scope that fits it instead of estimating "everything at once".

Typical mistakes

  1. A one-line spec. "We need a food delivery app" is not a spec but a topic of conversation.
  2. A 150-page spec before the first consultation. Half of it will be outdated after talking to the team. Better 5–10 pages following the structure above, with details worked out together with an analyst.
  3. Describing solutions instead of tasks. "Make the button blue and on the left" instead of "the user must reach the cart in one tap". Let the team decide how; your area is what and why.
  4. Forgotten "boring" parts: authentication, password recovery, notifications, error handling, admin panel. Up to 30% of the work.
  5. No priorities. When everything is "mandatory", the budget grows and the launch slips.

What to do if you have no time to write a spec

That is normal: a spec is an analyst's job, not the client's. It is enough to prepare items 1, 2 and 8 from the structure above plus a list of references. The rest — flows, screens, integrations — we do together during discovery: it is the first stage of every project in our studio, and its output becomes the basis for the estimate and the contract.

Want help formulating the task? Send a request — in a free consultation we go through the idea and tell you what needs clarifying before the start.

[ Let's start ]

Ready to discuss your project?

Tell us about the idea — in a free 30-minute consultation we estimate scope, timeline and budget and suggest the best way to launch.