Начать проект

Обсудим проект?

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

Отправлено!

Спасибо за заявку, мы свяжемся с вами в ближайшее время!

Техническое задание (ТЗ/SRS) на разработку приложения: пример и структура

Структура технического задания (ТЗ/SRS) на разработку приложения

Договор подписан, деньги перечислены, через три месяца заказчик открывает готовое приложение — и не узнаёт свой продукт. Кнопка не там, сценарий не тот, обещанной интеграции с 1С нет вовсе. Начинается спор, где каждая сторона искренне уверена в своей правоте. Проблема почти всегда одна: не было документа, который зафиксировал бы, что именно строим. Этот документ — техническое задание.

К нам в заказную разработку регулярно приходят «спасать» проект после другого подрядчика, и почти в каждой такой истории ТЗ либо не было, либо под ним можно было понять что угодно. Дальше — из чего состоит рабочее ТЗ, чем оно отличается от SRS и брифа, что требуют стандарты и как выглядит реальный фрагмент документа.

Если совсем коротко. ТЗ (техническое задание) — документ, который фиксирует, что продукт должен делать и каким быть, чтобы обе стороны понимали объём одинаково. Российский аналог западного SRS (Software Requirements Specification). Хорошее ТЗ описывает цели, роли пользователей, функциональные требования (что система делает) и нефункциональные (насколько быстро, надёжно, безопасно), интеграции и критерии приёмки — по ним заказчик принимает работу.

Формальный ГОСТ обязателен в основном для госзаказа; в коммерческой разработке ТЗ пишут в свободной или гибкой форме, но структура остаётся той же. Главная ценность ТЗ для заказчика — зафиксированный объём: без него смета и срок превращаются в фикцию.

Зачем ТЗ заказчику, а не только разработчикам

О ТЗ обычно рассказывают со стороны исполнителя: мол, разработчикам нужен документ, чтобы кодить. Для заказчика подрядной разработки ценность ТЗ прямее и весомее — оно защищает его деньги. Работает это на трёх уровнях.

Фиксация объёма (scope). ТЗ превращает расплывчатое «хочу приложение для заказов» в конкретный перечень: столько-то экранов, такие-то роли, эти интеграции. Только зафиксированный объём делает возможной честную смету и реальный срок. Пока объём не описан, любая названная цифра — гадание, а любое «мы думали, это входит» — законный повод для конфликта.

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

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

Отсюда практический вывод: экономия на этапе аналитики и ТЗ — самая дорогая экономия в проекте. Ошибка в требовании, найденная на старте, стоит часа работы аналитика; та же ошибка после релиза — переписанного модуля и сорванного срока. Дефекты требований многолетне держатся в числе главных причин провала IT-проектов — по данным исследований PMI и Standish Group.

ТЗ — не бюрократия, а описание того, за что вы платите.

ТЗ, SRS, бриф, требования: наводим порядок

Вокруг ТЗ роится десяток похожих терминов, и их постоянно путают. Разведём по местам — это сэкономит нервы на переговорах.

Бриф — короткий документ на входе, свободной формы: что за бизнес, какая задача, зачем нужен продукт, примеры-референсы. Бриф отвечает на «зачем и в общих чертах что». Это ещё не ТЗ, а сырьё для него.

ТЗ (техническое задание) — детальный структурированный документ: что система делает, какой должна быть, как принимается. Российская традиция, кодифицированная в ГОСТах. Отвечает на «что именно и с какими требованиями».

SRS (Software Requirements Specification) — по сути тот же документ в западной традиции. Устанавливает соглашение между заказчиком и исполнителем о том, что продукт должен делать. Практически SRS и ТЗ — близнецы одного назначения; разница в стандартах, по которым их пишут (у нас ГОСТ, на Западе — линейка IEEE/ISO).

Функциональные требования (ФТ) и user story — это уже части ТЗ, а не альтернатива ему. ФТ — формулировки «система делает то-то». User story — гибкая форма того же требования от лица пользователя. Оба живут внутри ТЗ, просто в разных форматах записи.

Документ Форма Отвечает на вопрос Когда появляется
Бриф Свободная, короткая Зачем нужен продукт, что примерно В самом начале, до оценки
ТЗ / SRS Структурированная, детальная Что система делает и какой должна быть После аналитики, до разработки
Функц. требования Пункты внутри ТЗ Что конкретно делает функция Внутри ТЗ
User story «Как роль — хочу — чтобы» То же, но от лица пользователя Внутри ТЗ (agile-форма)

Запомнить просто: бриф — это разговор, ТЗ/SRS — это договорённость, а требования и user story — её строительные блоки.

От идеи к договору: бриф, ТЗ или SRS, бэклог

Стандарты: ГОСТ, IEEE и когда они обязательны

Вокруг стандартов много мифов — от «ТЗ обязательно по ГОСТу» до «ГОСТы давно неактуальны». Реальная картина спокойнее.

ГОСТ 34.602-2020 — «Техническое задание на создание автоматизированной системы». Действует с 1 января 2022 года, заменил редакцию 1989 года. Регулирует ТЗ на автоматизированные системы: добавлен раздел о порядке разработки, из требований убрали устаревшую терминологию, а сами требования по стандарту должны быть «единичными, непротиворечивыми, актуальными, выполнимыми, проверяемыми и однозначными» — фактически это и есть критерии хорошего требования.

ГОСТ 19.201-78 (ЕСПД) — «Техническое задание. Требования к содержанию и оформлению». Регулирует ТЗ на программу независимо от назначения. Стандарт формально действует, но морально устарел — введён ещё в 1980 году.

IEEE 830 — западная классика, «рекомендуемая практика для SRS». Важный нюанс, который упускают почти все русскоязычные статьи: стандарт IEEE 830-1998 отменён и заменён на ISO/IEC/IEEE 29148 (действующая редакция — 29148:2018). Если подрядчик ссылается на IEEE 830 как на живой документ — это признак, что он давно не заглядывал в первоисточник.

Когда стандарт обязателен? ГОСТ 34.602-2020 обязателен для государственных и крупных корпоративных информационных систем — там, где действуют 44-ФЗ, 223-ФЗ и требования регуляторов. В обычной коммерческой разработке мобильного или веб-приложения формальный ГОСТ по умолчанию не нужен — стандарт применяют добровольно или если это прописано в договоре. Чаще ТЗ пишут в свободной структурированной форме или, при гибкой разработке, в виде набора user stories.

Стандарт Что регулирует Статус 2026 Когда нужен
ГОСТ 34.602-2020 ТЗ на автоматизированную систему Действует с 01.01.2022 Госзаказ, крупные корпоративные ИС
ГОСТ 19.201-78 (ЕСПД) ТЗ на программу Действует, но устарел Редко, по требованию заказчика
IEEE 830-1998 SRS (западный) Отменён → ISO/IEC/IEEE 29148:2018 Международные проекты (в новой редакции)

Практический вывод: не гонитесь за ГОСТом ради ГОСТа, если вы не госсектор. Гонитесь за содержанием — а хорошее содержание у ГОСТа и у свободного ТЗ одинаковое.

Разберём требования до старта

Бесплатная оценка по вашим вводным: чего не хватает в требованиях, где заложены риски и что войдёт в первую версию.

Обсудить проект

Структура ТЗ на приложение: типовые разделы

Независимо от того, пишете вы по ГОСТу или в свободной форме, скелет качественного ТЗ на приложение одинаков. Меняется степень формальности, а не состав.

1. Цели и бизнес-задачи. Зачем продукт нужен бизнесу и какую проблему решает. Без этого раздела команда делает функции, не понимая приоритетов.

2. Роли пользователей. Кто пользуется продуктом: гость, зарегистрированный пользователь, администратор, оператор. У каждой роли — свои права и сценарии.

3. Функциональные требования и сценарии. Ядро документа: что система делает. Здесь же — пользовательские сценарии («пользователь оформляет заказ»), разложенные по шагам.

4. Структура и экраны. Карта экранов и логика переходов: какая кнопка что открывает, что происходит после действия. Часто сопровождается прототипами.

5. Интеграции. С чем продукт связывается: платёжные системы, 1С/ERP, карты, аналитика, внешние API. Раздел, который забывают чаще всего, — и который потом рушит сроки.

6. Нефункциональные требования. Каким продукт должен быть: платформы (iOS, Android, минимальные версии), скорость, нагрузка, безопасность, поведение офлайн.

7. Требования к аналитике. Какие события трекаем, какие метрики важны — чтобы после запуска понимать, что происходит.

8. Критерии приёмки. По каким признакам заказчик считает работу выполненной. Именно этот раздел превращает ТЗ из описания в инструмент контроля.

Разделы вроде глоссария, ограничений и требований к документации добавляются по мере роста проекта. Но восемь блоков выше — необходимый минимум, ниже которого ТЗ перестаёт защищать заказчика.

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

Два типа требований, которые нельзя смешивать, потому что они про разное и проверяются по-разному.

Функциональные требования (ФТ) описывают, что система делает — конкретные функции и действия. «Пользователь регистрируется по номеру телефона». «Администратор видит список заявок и меняет их статус». «Приложение отправляет push-уведомление при смене статуса заказа». Формула ФТ — «что делать».

Нефункциональные требования (NFR) описывают, насколько хорошо система это делает — её качества. «Экран списка заказов открывается быстрее двух секунд при 10 тысячах записей». «Приложение работает на iOS 15+ и Android 10+». «Персональные данные хранятся в соответствии с 152-ФЗ». Формула NFR — «как хорошо».

Нефункциональные требования забывают чаще всего, и это дорого. Они определяют архитектуру: систему, спроектированную под сотню пользователей, невозможно «дописать» до миллиона — её придётся переделывать. Для нагруженных продуктов NFR вообще выходят на первый план: время ответа под пиком и устойчивость к нагрузке решают половину успеха.

Функциональные (ФТ) Нефункциональные (NFR)
Отвечают на Что система делает Насколько хорошо делает
Примеры Регистрация, оплата, push, экспорт Скорость, нагрузка, безопасность, платформы
Как проверить Функция есть или нет Замер по метрике (время, число, стандарт)
Риск, если забыть Нет нужной функции Продукт не выдержит реальности, переделка архитектуры
Функциональные и нефункциональные требования

Пример: фрагмент ТЗ на мобильное приложение

Теория без образца бесполезна — вот как выглядит проработанный кусок ТЗ на реальную функцию. Возьмём мобильное приложение для заказа услуг и распишем одну фичу: оформление заявки.

Функция: Оформление заявки на услугу

Роль: авторизованный пользователь.

Пользовательский сценарий:

  • 1. Пользователь на экране каталога выбирает услугу и нажимает «Оформить заявку».
  • 2. Открывается форма заявки: адрес, дата и время, комментарий.
  • 3. Пользователь заполняет обязательные поля и нажимает «Отправить».
  • 4. Система проверяет заполнение, создаёт заявку, показывает экран подтверждения с номером.
  • 5. Пользователю приходит push-уведомление о принятии заявки.

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

  • ФТ-1. Кнопка «Оформить заявку» доступна только авторизованному пользователю; гостя система ведёт на экран входа.
  • ФТ-2. Поля «адрес» и «дата/время» обязательны; при незаполнении кнопка «Отправить» неактивна.
  • ФТ-3. Дату нельзя выбрать в прошлом; доступны слоты на 14 дней вперёд.
  • ФТ-4. После создания заявки система присваивает ей уникальный номер и статус «Новая».
  • ФТ-5. Push о смене статуса приходит в течение 1 минуты после изменения на сервере.

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

  • NFR-1. Экран формы открывается быстрее 1,5 секунды при стабильном соединении.
  • NFR-2. Поддержка iOS 15+ и Android 10+.
  • NFR-3. При отсутствии сети введённые данные сохраняются локально и отправляются при восстановлении связи.

Критерии приёмки:

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

Обратите внимание на плотность: каждый пункт проверяем, ни один не допускает двойного толкования. Именно по такому фрагменту тестировщик составит проверки, а заказчик — примет работу. Сравните с типичной формулировкой из плохого ТЗ: «должна быть удобная форма заявки». Под неё можно сдать что угодно и спорить бесконечно.

Соберём ТЗ, по которому можно принимать работу

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

Получить консультацию

Как написать хорошее требование

Разница между ТЗ, которое защищает, и ТЗ, которое порождает споры, — в качестве отдельных формулировок. Хорошее требование проходит проверку на несколько свойств.

Однозначность. Требование понимается всеми одинаково. «Быстрая загрузка» — плохо, потому что «быстро» у каждого своё. «Загрузка списка быстрее 2 секунд» — хорошо.

Проверяемость. Должно быть ясно, как убедиться, что требование выполнено. Если проверить нельзя — это не требование, а пожелание.

Атомарность. Одно требование — одна мысль. «Пользователь регистрируется и оплачивает подписку» надо разбить: это две функции, которые тестируются отдельно.

Достижимость. Требование выполнимо в рамках технологий и бюджета проекта, а не взято из фантазий.

Эти свойства перекликаются с известной формулой SMART (конкретное, измеримое, достижимое, релевантное, ограниченное по времени) и, что показательно, почти дословно повторяют формулировку ГОСТ 34.602-2020: требования должны быть единичными, непротиворечивыми, проверяемыми и однозначными. Стандарты разные — принцип один.

В гибкой разработке те же требования записывают в форме user story: «Как <роль>, я хочу <действие>, чтобы <ценность>». Например: «Как администратор, я хочу выгружать отчёт в PDF, чтобы отправлять его руководству». К истории прикладывают критерии приёмки — часто в формате «Дано <контекст>, когда <действие>, тогда <результат>». Это то же функциональное требование плюс критерий приёмки, только человеческим языком.

Когда уместна гибкая форма, а когда классический документ, зависит от выбранного процесса — разбирали это в материале про методологии разработки и в статье про жизненный цикл разработки ПО.

Требование, которое нельзя проверить, — это пожелание.

Кто пишет ТЗ и нужно ли оно в Agile

Два вопроса, на которых заказчики спотыкаются чаще всего.

Кто пишет ТЗ. На подрядном проекте документ обычно составляет аналитик или проджект-менеджер исполнителя — в тесной связке с заказчиком. Это правильно: заказчик приносит бизнес-задачу и знание предметной области, подрядчик превращает её в проверяемые требования.

ТЗ, написанное заказчиком в одиночку, страдает пробелами в нефункциональных требованиях и интеграциях; ТЗ, написанное подрядчиком без заказчика, рискует разойтись с бизнес-логикой. Хороший результат даёт только совместная работа.

Про деньги на этом шаге. У нас оценка проекта по вашим вводным бесплатная и автоматизированная, поэтому смету и план мы возвращаем быстро, а не через две недели. Разработка полноценного ТЗ как отдельная услуга начинается от 300 тыс. ₽, сама заказная разработка продукта — от 1,7 млн ₽.

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

Нужно ли ТЗ в Agile. Да, но в другой форме. Гибкая разработка не отменяет фиксацию требований — она меняет её формат: вместо толстого документа, написанного один раз и целиком, требования живут как приоритизированный список user stories с критериями приёмки, который уточняется по ходу. Суть та же — зафиксировать, что и как принимаем.

Отличается лишь то, что при Agile объём осознанно оставляют подвижным, а при классическом ТЗ фиксируют целиком заранее. Выбор формы прямо связан с моделью работы и оплаты проекта.

Три ошибки, которые дорого обходятся

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

Забытые нефункциональные требования и интеграции. Функции описали, а про нагрузку, безопасность и связь с 1С забыли. Эти разделы всплывают в середине разработки и рушат и сроки, и архитектуру. Их место — в ТЗ, а не в панике на середине проекта.

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

Три дорогие ошибки при работе с ТЗ

Обсудим ваш проект?

Зафиксируем объём и смету до старта — по вашим вводным, без месяцев переписки. Оценка бесплатная.

Обсудить проект

Часто задаваемые вопросы

Это родственные документы одного назначения — зафиксировать требования к продукту и договорённость между заказчиком и исполнителем. Разница в традиции и стандартах: ТЗ — российская практика, кодифицированная в ГОСТах (34.602, ЕСПД), SRS (Software Requirements Specification) — западная, описанная в ISO/IEC/IEEE 29148 (пришедшем на смену отменённому IEEE 830). По содержанию оба описывают одно и то же.

Бриф — короткий документ свободной формы в самом начале: что за бизнес, зачем нужен продукт, примеры. ТЗ — детальный структурированный документ с конкретными требованиями и критериями приёмки. Бриф отвечает на «зачем и примерно что», ТЗ — на «что именно и с какими требованиями». Бриф часто становится сырьём для ТЗ.

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

Для государственных заказов и крупных корпоративных информационных систем — да, там действует ГОСТ 34.602-2020. Для обычной коммерческой разработки приложения формальный ГОСТ не обязателен: ТЗ пишут в свободной структурированной форме или, при гибкой разработке, в виде user stories. Содержание при этом остаётся тем же.

Да, но не в виде толстого документа целиком. Требования фиксируют как приоритизированный список пользовательских историй (user stories) с критериями приёмки, который уточняется по ходу проекта. Задача та же — договориться, что делаем и как принимаем; меняется только форма записи и то, что объём осознанно держат подвижным.

Разработка с Code Pilots

Code Pilots — студия заказной разработки полного цикла: веб- и мобильные продукты с нетривиальной бизнес-логикой, интеграциями и высокими нагрузками. Аналитика и проектирование требований — не строчка в смете, а фундамент, на котором держится предсказуемость проекта.

Внутри — сильная in-house команда: аналитики с отраслевой экспертизой, дизайнеры, разработчики (Flutter и нативная разработка), QA и DevOps. Мы прорабатываем требования вместе с заказчиком и фиксируем объём и критерии приёмки на старте.

За счёт этого работаем по фиксированной стоимости — там, где рынок обычно уходит в почасовку. Отлаженные процессы, большая база готовых решений и глубоко внедрённый в разработку AI позволяют выпускать рабочие продукты значительно быстрее рынка.

Расскажите о задаче — поможем сформулировать требования и оценим проект под ваши цели. Обсудить проект →

Обсудим проект?

Заполните форму или напишите нам
на airmail@code-pilots.ru
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.

Спасибо!

Спасибо за сообщение, мы свяжемся
с вами в ближайшее время!
success