Skip to content
B2B-Lab

Process · 9 min read

How to write a technical specification for development

How to structure a technical specification for a bot, website or app: goals, roles, user flows, integrations and non-functional requirements. A 9-section template, a website example and common mistakes.

Published: Updated: By the B2B-Lab team

A good technical specification saves money, not pages: it lets a contractor quote a price that won't drift a month later, and it lets you accept the work against clear criteria. A bad spec is either three lines of “we need a website like our competitors'” or 80 pages of requirements nobody read to the end.

Below is a practical guide to writing a technical specification for a bot, website, app or platform, even if you're not a technical person. We'll go through the structure, show an excerpt in the format of a real spec, list the mistakes that most often lead to rework, and explain how to get a preliminary estimate without lengthy back-and-forth.

Why you need a spec and how it differs from a brief

A brief answers “what's the business and what's the task”. A spec answers “what exactly should we end up with, and how will we know it's done”. A brief takes half an hour to fill in; a spec takes anywhere from a few days to a couple of weeks, depending on the size of the product.

A technical specification does three practical jobs:

  • Estimation. Without a list of roles, user flows and integrations, any price is guesswork. When quotes for the same “website” vary 3–5x between contractors, it's usually because each one pictured a different website.
  • Agreement. The spec fixes the scope of work. Anything not in it is a scope change to be discussed separately, not “well, that's obvious”.
  • Acceptance. Every requirement must be testable: “the request form sends data to the CRM within 5 seconds” can be checked; “a user-friendly form” can't.

For small jobs, like a simple bot or a landing page, a short 2–4 page spec is enough. For a platform or a mobile app, the document grows to 15–40 pages and is usually refined together with the contractor at the prototype stage.

Development spec template: 9 essential sections

This development spec template works for any digital product: a Telegram bot, website, Mini App, mobile app or marketplace. Sections can be shortened but not dropped: an empty section is better than a forgotten one.

Structure of a technical specification
SectionWhat goes in itExample wording
1. Goal and metricsWhat business problem the product solves and how to measure successReduce operator workload: the bot resolves 60% of inquiries without a human
2. Audience and rolesWho uses the product and what permissions each role hasCustomer, manager, administrator; managers see only their own requests
3. User flowsStep-by-step paths for key actionsCustomer picks a service → a date → pays → gets a confirmation
4. FeaturesList of features with prioritiesMust: catalog, cart, payment. Could: promo codes
5. IntegrationsWhich systems exchange data and in which directionOrders go to 1C, statuses flow back to the customer account
6. Platforms and designWhere the product runs, whether there's a brand book and mockupsWeb + iOS + Android, brand identity exists, no mockups
7. Data and securityPersonal data, storage, access, hostingPersonal data under 152-FZ (Russia's personal data law), servers in Russia, 2FA login for staff
8. Non-functional requirementsLoad, speed, availability, browser supportUp to 500 concurrent users, pages load in under 2 s
9. Constraints and acceptanceBudget, deadlines, milestones, sign-off criteriaMVP launch by December 1, acceptance against a user-flow checklist

If the product is complex, add a glossary (what you mean by “order”, “deal”, “customer”) and appendices: sample documents, exports from your current systems, competitor screenshots marked “like” and “don't like”.

How to write a development spec: user flows, not a feature list

The main mistake is describing the product as a set of screens and buttons. What developers really need to understand is who does what, why, and in what order. So if you're figuring out how to write a development spec that everyone reads the same way, start with user flows.

The user story formula

Use a simple template: “As a [role], I want to [action] so that [outcome]”. For example: “As a manager, I want to get a Telegram notification about a new request so that I can contact the customer within 15 minutes”.

Acceptance criteria for every story

Add 2–5 testable conditions to each story. For the example above:

  • the notification arrives no later than 10 seconds after the form is submitted;
  • the notification includes the name, phone number, selected service and request source (UTM tag);
  • the “Take it” button changes the request status and hides it from other managers;
  • if the manager doesn't respond within 15 minutes, their team lead gets the notification.

This is how you write requirements that can be both estimated and accepted. It matters especially for bots and Mini Apps: their logic lives in the conversation, and without user flows the contractor has to fill in the gaps. Learn more about how we design state maps on our Telegram bot development page.

Priorities: MoSCoW

Tag every feature: Must (the product can't launch without it), Should (needed, but can wait a month), Could (nice to have), Won't (definitely not in this version). This tagging is the basis of the first product version; we covered how to choose features for launch in detail in our article on MVP development.

Non-functional requirements people forget

Features describe what the product does. Non-functional requirements describe how it does it. These are the ones that most often surface after launch, and they cost the most if they weren't agreed on in advance.

  • Load: how many users you expect in the first month and in a year, and whether there are peaks (sales, mailings).
  • Speed: target page load and bot response times; for websites, Core Web Vitals targets.
  • Availability: acceptable downtime, and whether you need monitoring and on-call support.
  • Security: what data is stored, who has access to it, whether two-factor authentication and an audit log are needed.
  • Personal data: processing under 152-FZ, data localization in Russia, consents and a privacy policy.
  • Hosting: your cloud, your own servers or an isolated network with no internet access.
  • Support: browsers, iOS and Android versions, interface languages, accessibility for visually impaired users.
  • Handover: documentation, credentials, a repository in your account, deployment instructions.

Example technical specification for a website

Below is a condensed example of a technical specification for a manufacturing company's website. It fits on two pages and is already enough to get an accurate estimate.

  1. Goal: generate equipment quote requests from B2B customers; target of 40 qualified requests per month 3 months after launch.
  2. Audience: engineers and procurement specialists at industrial companies, 70% visiting from desktop.
  3. Roles: visitor; content manager (edits the catalog and news); administrator (access, settings).
  4. Structure: home page, catalog of 6 categories and ~120 items, product page with a PDF spec sheet, case studies, about, contacts, blog.
  5. Key user flow: a visitor finds an item via the filter → opens the product page → clicks “Request a quote” → fills in a 4-field form → the request goes to Bitrix24 and to the sales team's Telegram.
  6. Integrations: Bitrix24 (lead creation), Yandex Metrica with goals, daily catalog export from 1C.
  7. Design: brand book exists; a UX prototype and mobile-responsive layout are needed.
  8. Non-functional requirements: page load under 2 seconds on 4G, technical SEO and structured data, hosting in Russia.
  9. Acceptance: all flows from item 5 pass on the staging environment, forms reach the CRM, Lighthouse Performance score of 90+.

Notice what's missing: the words “modern”, “user-friendly” and “high-converting”. Instead there are numbers, roles, a user flow and criteria. With a document like this, contractors quote comparable prices, and you compare proposals rather than fantasies. To see what websites and web apps we build and what the work involves, visit our website development section.

Common spec mistakes and how to avoid them

Mistake → consequence → fix
MistakeWhat it leads toHow to fix it
“Like Avito, only better”Quotes from 1 million to 30 million ₽: everyone pictured something differentList 3–5 specific features of the reference product that you actually need
No roles or permissionsAccess logic reworked after launchA one-page “role × action” table
Integrations “we'll figure out as we go”Deadlines slip by weeks if the system has no APICheck in advance whether there's an API and who will grant access
Everything is a MustThe first version's budget grows 2–3xMoSCoW tagging and an honest cut for launch
No acceptance criteriaDisputes at handover, endless revisions2–5 testable conditions for each user flow
The spec is written by one personRequirements from sales, support and accounting get missedInterview every future user inside the company

Another trap is trying to describe every last button before there's a prototype. Interface details are faster and cheaper to settle on a clickable prototype: you see the screens, click through, make changes. The spec sets the frame; the prototype fills it in.

Online questionnaire: a spec without a blank page

The hardest part is getting started. That's why our website has an online questionnaire for writing a spec: it turns the structure above into a sequence of questions with hints and answer options. You don't have to write from scratch; most items are selected with buttons. The questionnaire has 7 sections:

  1. About you: contacts, company, your role in the project.
  2. About the product: product type, goal, stage, current stack, references and links to documents.
  3. Users and roles: audience, roles, scale, geography, the user's problem.
  4. Functionality: features, the must-have minimum, payments, integrations.
  5. Platforms and design: where the product runs, design, branding, content.
  6. Data, AI and security: whether AI is needed, data migration, security and hosting requirements.
  7. Budget, timeline and process: budget, deadline and the reason for it, support, your involvement.

Right after submitting, you get a preliminary estimate. It's for reference: we give the exact cost after working through the spec together with you. Price benchmarks for all services are collected on our development pricing page.

Questions and answers

Who should write the technical specification: the client or the contractor?

The client defines goals, audience, user flows and constraints, because they know the business. The technical sections (architecture, integrations, non-functional requirements) are best refined together with the contractor during the discovery phase.

How many pages should a spec be?

For a bot or landing page, 2–4 pages is enough; for a website with a catalog and integrations, 5–10; for a platform or mobile app, 15–40. What matters is not length but that every requirement can be tested.

Can you start development without a spec?

Yes, if the work runs in short sprints with weekly demos and time-and-materials billing. But for a fixed price and deadline, you can't do without a spec: without one, the estimate remains guesswork.

What if requirements change during the project?

Record changes in writing: what's being added, what's being removed, and how it affects the timeline and budget. A good practice is a separate change log that both sides approve.

How is a spec different from a brief?

A brief describes the business and the task in general terms and is used for an initial estimate. A spec details roles, user flows, features, integrations and acceptance criteria, and becomes part of the contract.

Contact

Always happy to discuss a new project.

Fill in the form — or a detailed brief if your requirements are already clear. We'll reply with an estimate and a plan.

  1. 01Tell us about your task, goals and timeline
  2. 02Get a clear estimate and plan
  3. 03Call with the head of the lab

hello@b2b-lab.ru