Как создать ТЗ для веб-приложения чек-лист

02.12.20256 мин чтения
Вадим Мяленка
Ген. Директор, NBM-ITВадим Мяленка

ТЗ для веб-приложения: чек-лист для фаундера, который не любит писать документы

У большинства фаундеров история примерно одна и та же. Есть идея сервиса, в голове — десятки экранов, в заметках — ссылки на «аналогов, только лучше», в чатах с партнёрами — обсуждения логики и тарифов.

А потом на сцену выходят разработчики и спокойно спрашивают:

«Пришлите, пожалуйста, ТЗ».

И всё. Настроение портится, проект откладывается «до того момента, когда будет время всё нормально описать».

Ниже — статья для тех, кто понимает, что хочет получить на выходе, но терпеть не может писать формальные документы. Это не «доклад по ГОСТу», а чек-лист, по которому можно за вечер собрать рабочее техническое задание на веб-приложение.


1. Что такое ТЗ на веб-приложение по-простому

Формальное определение простое: ТЗ — это документ, в котором описано, что нужно сделать, для кого, в каких условиях и с каким результатом.

По-простому:

ТЗ — это способ договориться с командой о том, что именно вы строите, чтобы не переделывать всё по три раза.

Хорошее ТЗ:

  • снимает разночтения «мы думали, что будет по-другому»;
  • помогает адекватно оценить сроки и бюджет;
  • задаёт рамки: что попадает в первую версию (MVP), а что — «потом».

Важно: ТЗ не обязано быть идеальным. Лучше честный, но структурированный черновик, чем «идеальный документ, который вы пишете полгода».


2. Чек-лист: что обязательно должно быть в ТЗ

Ниже — структура, которую можно просто перенести в свой документ и заполнить. Это не строгий стандарт, а ориентир.

2.1. О компании и продукте

Пара абзацев, но по делу:

  • чем занимается компания;
  • кто целевая аудитория;
  • в каком контексте будет жить веб-приложение (отдельный продукт, часть существующего сайта, внутренняя система и т.д.).

Пример:

Мы — сервис по доставке грузов B2B. Клиенты — интернет-магазины и оптовики. Сейчас заявки приходят из формы на сайте и по телефону, дальше всё ведётся в таблицах и переписках. Хотим перенести процесс в веб-приложение с личным кабинетом.

Этот блок помогает разработчикам не только «сделать кнопки», но и понять, под какие реалии они это делают.


2.2. Цели проекта

Здесь важно сформулировать бизнес-результат, а не «хочу красивое приложение».

Хорошие формулировки:

  • сократить время обработки заявки с 2 дней до 2 часов;
  • снизить количество ручного ввода данных менеджерами;
  • дать клиенту возможность отслеживать статус без звонков;
  • увеличить долю повторных заказов.

2–4 понятных цели — достаточно. Дальше по ним можно принимать продуктовые решения: что критично в первую очередь, а что можно отложить.


2.3. Роли пользователей и ключевые сценарии

Никаких UML-диаграмм не требуется. Достаточно ответить на два вопроса:

1. Кто будет пользоваться системой?

  • клиент;
  • менеджер;
  • администратор / владелец проекта;
  • партнёр (поставщик, подрядчик).

2. Что каждый из них будет делать?

Пример:

  • Клиент:

    • зарегистрироваться и войти;
    • создать заявку;
    • загрузить документы;
    • смотреть статусы;
    • оплачивать.
  • Менеджер:

    • видеть новые заявки;
    • связываться с клиентом;
    • менять статусы;
    • оставлять внутренние комментарии.
  • Администратор:

    • управлять пользователями;
    • задавать тарифы и справочники;
    • смотреть отчёты.

Такие сценарии — уже половина функциональных требований.


2.4. Функциональные требования

Здесь описывается, что именно умеет система. Не бойтесь простых формулировок.

Удобно разбить блок на подпункты:

  • Регистрация и авторизация

    • вход по email / телефону;
    • восстановление пароля;
    • при необходимости — вход через внешние сервисы.
  • Личный кабинет клиента

    • создание и редактирование заявки;
    • список заявок и их статусы;
    • сообщения от менеджера;
    • загрузка файлов.
  • Админка / кабинет менеджера

    • список заявок с фильтрами;
    • карточка заявки с историей;
    • изменение статуса;
    • экспорт данных.
  • Уведомления

    • что и кому отправляем (email, SMS, push);
    • на каких ключевых событиях (новая заявка, смена статуса, приближение дедлайна).

Если сложно описывать «языком системного аналитика», можно так: «Пользователь заходит, видит кнопку “Создать заявку”, заполняет 5–7 полей и отправляет. После этого заявка должна появиться у менеджера в списке “Новые”».


2.5. Интеграции

Самый конфликтный блок, если его не проговорить заранее.

Ответьте на вопросы:

  • С какими системами нужно связать веб-приложение?

    • 1С / бухгалтерия;
    • CRM (Битрикс24, amoCRM, своя);
    • платёжные сервисы;
    • системы доставки;
    • любые другие внешние API.
  • Какие данные должны ходить между системами?

    • заявки и статусы;
    • клиенты и сделки;
    • счета, акты, оплаты.

Если каких-то деталей вы ещё не знаете — так и пишите. Важно хотя бы зафиксировать, что интеграции нужны и с кем.


2.6. Нефункциональные требования

Это пункт, который редко формулируют, но он сильно влияет на архитектуру и стоимость.

Что сюда попадает:

  • Нагрузка

    • примерное количество одновременных пользователей;
    • примерный объём операций в день (заявки, заказы, документы).
  • Скорость

    • где критично время отклика;
    • допустимы ли фоновые операции (например, расчёт стоимости).
  • Надёжность

    • требуемое «время безотказной работы»;
    • допустим ли ночной технический простой.
  • Безопасность

    • работа с персональными данными;
    • требования по журналированию действий пользователей;
    • доступ к админке (IP-ограничения, двухфакторная авторизация и т.д.).

Даже если вы напишете в этом блоке лишь «ожидаем среднюю нагрузку, точные цифры пока неизвестны» — это уже лучше, чем ничего.


2.7. Дизайн и UX

Здесь не обязательно прикладывать готовые макеты, но полезно:

  • указать, есть ли бренд-гайд (логотип, цвета, шрифты);
  • дать 3–5 примеров интерфейсов, которые вам нравятся;
  • описать, что категорически не нравится.

Пример формата:

  • Нравится: минималистичные интерфейсы с большим количеством воздуха, как у [пример 1], [пример 2].
  • Не нравится: перегруженные панели с десятком кнопок и мелким шрифтом.

Отдельно проговорите:

  • критична ли мобильная версия (и в каком виде: адаптив или отдельное мобайл-решение);
  • есть ли требования по доступности (контраст, крупные элементы, особенности целевой аудитории).

2.8. Отчёты и аналитика

Про отчёты вспоминают в последний момент, когда проект почти готов. Лучше заложить их сразу.

Ответьте на вопросы:

  • Какие показатели вы хотите видеть регулярно?

    • количество заявок;
    • конверсия по статусам;
    • выручка;
    • эффективность менеджеров.
  • В каком виде отчёты нужны?

    • таблицы внутри системы;
    • выгрузка в Excel;
    • простые дашборды с графиками.

Хороший ориентир — вопрос к себе как к владельцу:

«Открыл систему утром — какие три цифры я хочу увидеть в первую очередь?»


2.9. Ограничения и «точно не надо»

Этот блок редко попадает в ТЗ, хотя именно он спасает от бесконечного расползания задач.

Сюда можно вынести:

  • Бюджет — хотя бы вилку;

  • Сроки — жёсткие даты (мероприятия, релизы, договорённости);

  • Технологические ограничения — например, необходимость использовать существующую инфраструктуру;

  • Идеи, которые сейчас точно не делаем:

    • «Не делаем мобильное приложение в первой версии»;
    • «Не вводим сложную систему ролей, начинаем с базовых».

Чёткий список «не делаем» помогает не перегружать MVP.


3. Как собрать ТЗ, если вы не любите писать

Фаундер не обязан превращаться в аналитика и лично оформлять идеальный документ. Рабочая схема может быть такой:

  1. Создать черновой документ Вынести туда пункты из чек-листа и коротко ответить на вопросы — тезисами, без красивых формулировок.
  2. Пройтись по нему голосом Обсудить черновик с партнёром, продукт-менеджером или подрядчиком. Можно записать голосовое или провести созвон.
  3. Передать оформление тем, кто привык к документам Аналитик или ведущий разработчик собирает финальное ТЗ на основе ваших ответов и уточняющих вопросов.

Ваша зона ответственности — смысл и решения, а не выравнивание списка в Word.


4. Частые ошибки в ТЗ на веб-приложение

Короткий анти-чек-лист:

  • «Сделайте как у [известный сервис], только лучше» Без описания своей модели, процессов и аудитории.
  • Нет приоритизации Всё важно, всё нужно «на вчера», нет разделения на MVP и вторую очередь.
  • Сценарии пользователей не описаны Есть набор функций, но непонятно, как ими реально пользуются живые люди.
  • Интеграции всплывают в последний момент На этапе разработки внезапно появляется «а ещё нужно, чтобы всё летело в 1С и обратно».
  • Не сформулированы бизнес-цели Тогда любые споры превращаются в обсуждение вкуса, а не результата.

Если вы пройдётесь по чек-листу из предыдущего раздела, часть этих ошибок автоматически отпадёт.


5. Мини-шаблон, который можно скопировать

Ниже — короткий каркас. Его можно просто вставить в свой документ и заполнить.

Техническое задание на разработку веб-приложения «…»

1. О компании и продукте

Кто вы, чем занимаетесь, для кого создаёте приложение.

2. Цели проекта

2–4 измеримые бизнес-цели, которых хотите достичь с помощью приложения.

3. Роли и сценарии пользователей

Перечень ролей (клиент, менеджер, администратор и т.д.) и основные действия каждого.

4. Функциональные требования

4.1. Регистрация и авторизация
4.2. Личный кабинет клиента
4.3. Кабинет менеджера / админка
4.4. Уведомления
4.5. Прочий функционал

5. Интеграции

Список внешних систем и описание того, какие данные должны обмениваться.

6. Нефункциональные требования

Нагрузка, скорость, надёжность, безопасность, требования к доступности.

7. Дизайн и UX

Наличие бренд-гайда, референсы интерфейсов, требования по адаптиву и удобству.

8. Отчёты и аналитика

Какие отчёты и показатели нужны в системе.

9. Ограничения и «точно не делаем»

Бюджетная вилка, сроки, технологические ограничения, список идей «на потом».


ТЗ на веб-приложение не должно превращаться в отдельный проект на полгода. Достаточно один раз спокойно пройтись по таким пунктам, зафиксировать решения и отдать документ тем, кто будет по нему работать.