Написание ТЗ на разработку: инструкция, примеры и советы
Зачем нужно ТЗ и когда его стоит составлять
Техническое задание (ТЗ) — это не бюрократический ритуал, а документ, который прямо влияет на стоимость, сроки и успех проекта. Он определяет «что» именно нужно создать, «почему» это важно и «как» это будет реализовано. Без него решения принимаются интуитивно, а не системно, что на практике приводит к переделкам, дополнительным затратам и испорченным отношениям сторон.

Один из вполне реальных кейсов: заказчик хочет интернет-магазин «как у конкурента». Команда берёт готовую CMS, настраивает шаблон. Через 2 недели заказчик говорит: «Добавьте промо-панель, как на Wildberries, и чтобы оплата работала с двух банков». Проект встал. Всё, что сделано, не учитывает эти «нюансы». Менять архитектуру — значит выбрасывать 80% кода и начинать с нуля.
Писать ТЗ нужно ещё до этапа дизайна и разработки. Это основа оценки бюджета, сроков и сложности проекта. Также на его базе принимаются управленческие решения: выбрать фреймворк, определить, нужно ли мобильное приложение, какие API потребуется разрабатывать или интегрировать.
Когда можно обойтись без ТЗ? Только в случае микро-MVP или внутренних экспериментов, когда важна скорость реализации идеи, а не её масштаб. Даже в таких случаях желательно опираться на документ, хотя бы в виде короткого брифа или таблицы со сценариями использования.
Что обязательно должно быть в ТЗ: универсальная структура
Универсального шаблона ТЗ не существует, но есть устоявшиеся блоки, которые применяются практически для любого типа цифрового продукта. Ниже — структура с пояснениями, что важно включать и почему.
- Общая информация: в этом разделе описываются цели проекта, ресурсы заказчика, контекст (например, продукт создаётся для внутреннего использования в службе поддержки). Цель — дать команде разработчиков понимание задачи не только как набора функций, но и как решения конкретной бизнес-проблемы. Пример: «Разработка сайта для регистрации на семинары, которые организует компания X, с возможностью выгрузки заявок в CRM».
- Описание пользовательских функций и сценариев использования: это главный раздел, заменяющий абстракции реальными действиями пользователя. Нужно раскрыть, кто целевая аудитория и как она будет использовать интерфейс. Например:
- Посетитель выбирает услугу, переходит в карточку, находит кнопку «Записаться», выбирает удобное время, оставляет телефон;
- Менеджер получает заявку в системе управления, подтверждает и отправляет СМС-уведомление.
- Прописывайте бизнес-логику полностью, включая пограничные сценарии: что происходит, если слот уже занят, если нет доступного расписания и т.д.
- Прототипы и визуальные референсы: это не финальный дизайн, но важный блок, который синхронизирует видение сторон. Подойдут наброски в Figma, скриншоты «нравится/не нравится», референсы конкурентов. Обязательно сопроводите их пояснениями: почему выбрали эти элементы, какой функционал за ними стоит. Просто бросить ссылку на Pinterest — бесполезно.
- Технические требования: здесь указываются параметры кода, технологии, ограничения. Например:
- Сайт должен поддерживать мобильные устройства от iPhone 8 и Android 10;
- Интеграция с 1C через REST API;
- Требуется защита форм отправки от спама (reCAPTCHA v3);
- Админка на Laravel Nova.
- Этапность, сроки и условия приёмки: раздел, который критично важен для контроля и договорных взаимоотношений. Делите проект на фазы: дизайн → базовая версия backend → тестирование → финал. Для каждой стадии — описать ожидаемый результат и формат сдачи. Примеры условий приёмки:
- Форма подписки сохраняет данные в таблицу MySQL;
- Функция поиска отображает не менее 80% совпадений по ключевому слову.
- Ограничения: сюда включаются юридические требования (например, соблюдение ФЗ-152 об обработке ПДн), технические (например, нельзя использовать Google-сервисы, если сервер в Китае), или внутренние (приложение должно работать без доступа в интернет).
- Ответственные и порядок коммуникации: чтобы избежать «треугольника непонимания», обязательно прописываются ответственные лица со стороны заказчика и исполнителя, формат обратной связи (Slack, email, Zoom) и допустимый тайминг ответов.
Такая структура позволяет организовать проект на этапе ещё до реального кода — и избежать более 70% типичных ошибок при разработке digital-продуктов.
Виды ТЗ в зависимости от типа проекта — что нужно учитывать
ТЗ для интернет-магазина и мобильного обучения — два совершенно разных документа по типу мышления, уровню формализации и объёму сценариев. Ошибка — использовать одну структуру «на всякий случай подойдёт». Ниже — ключевые отличия по типам продуктов.
- ТЗ для сайта: фокус на структуре контента, SEO-требованиях, сценариях редактирования. Важны модели страниц, логика меню, CMS-возможности. Если это корпоративный сайт — уделить внимание гибкости и редактируемости. Пример: блок с кейсами должен дополняться редактором, иметь дату и ссылку на PDF.
- ТЗ для мобильного приложения: основа — пользовательские фичи, кастомные UI-элементы, оффлайн-режим, push-уведомления, разрешения (доступ к геолокации, контактам и т.п). Важны логика навигации, специфика магазинов (App Store/Google Play) и сценарии запуска. Пример: при первом запуске — показать туториал; при выключенном интернете — ограничить функционал.
- ТЗ для CRM-системы: здесь ключ — логика ролей, бизнес-процессы, фильтрация, экспорты, API-интеграции. Нужно чётко прописывать поля карточек сущностей (клиент, заказ, задача), статусы, автоматизации. Если CRM будет интегрироваться с телефонией или почтой — включайте схему потоков данных и уведомлений.
- ТЗ для интернет-магазина: акцент на каталоге, фильтрах, корзине, платёжных системах, управлении товарами. Обязательно описывать правила акций, купонов, доставки. Пример: цена товара может зависеть от объема, регион может влиять на условия доставки/оплаты — это не очевидно из описания, но критично для реализации.
Сравнительная таблица степени важности блоков по типам проектов:
- Прототипы: критичны для мобильных приложений, желательны для сайтов, опциональны для backend-систем.
- Интеграции: обязательны для CRM, интернет-магазинов; касаются API и форматирования данных.
- Юзер сценарии: must-have для приложений, сайтов; в CRM могут быть заменены регламентами.
- Тестовые данные: очень полезны при работе над CRM/интернет-магазином, для оценки логики фильтров и сортировок.
В итоге: хорошее ТЗ — это не универсальная форма, а точный ответ на вопрос «А что именно здесь уникального и как это будет работать?». Подстраиваясь под контекст, вы экономите на переделках и повышаете точность оценки задач.
Как определить уровень детализации: без фанатизма, но точно
Ошибка, с которой сталкиваются и менеджеры, и заказчики — попытка сделать ТЗ или слишком поверхностным, или чрезмерно объёмным. Обе крайности опасны: в первом случае недопонимание ведёт к переработкам, во втором — теряется скорость и вовлечённость команды. Ключевой принцип: описывать ровно столько, сколько нужно для точного понимания задачи, но не дублировать очевидное.
Простой способ протестировать уровень детализации — задать себе вопрос: “Если этот пункт убрать, насколько велика вероятность, что результат будет отличаться от ожидаемого?”
- Если вероятность >50% — раздел оставить и проработать;
- Если вероятность <10% — можно считать блок необязательным или заменить иллюстрацией/прототипом.
Например, фраза «главная страница должна быть красивой» — бесполезна. Но подробное описание первого экрана («заголовок слева, кнопка “Заказать” ведёт к блоку №3») — уже предмет для дизайна и верстки.
Частый вопрос: «Нужно ли описывать каждую кнопку на экране?» — Ответ зависит от контекста:
- Если вы составляете ТЗ на повторяемую бизнес-логику (например, форма добавления товара), достаточно одного описания и указания, где она используется ещё.
- Если кнопка несёт важную уникальную логику (например, пересчёт стоимости с учётом скидки или пользовательский workflow), её стоит описывать отдельно.
Прототипы и пользовательские истории (юзерстори) — отличный способ упростить ТЗ, не теряя смысла. Они позволяют описывать не интерфейс, а поведение пользователя:
- Как пользователь заходит и выбирает продукт?
- Что происходит при оплате или ошибке?
- Как админка отображает эти действия?
Такой структурный подход позволяет отказаться от громоздких абстракций (титульные страницы, формальные определения), сохранив при этом рабочую пользу документа.
Типичные ошибки при написании ТЗ на разработку
Даже с хорошими намерениями и опытом, заказчики и начинающие PM допускают повторяющиеся ошибки. Команда часто тратит до 40% времени проекта не на код, а на разбор «что именно вы подразумевали» в неудачно составленном ТЗ. Ниже — ошибки, которых стоит избегать.
- “Разберёмся по ходу”. Устные договорённости легко теряются, особенно если проект длится дольше месяца. Люди меняются, приоритеты меняются, контексты забываются. Без зафиксированных пользовательских сценариев решить споры по ходу становится невозможно. Мы наблюдали, как тот же заказчик утверждал противоположные вещи в разные дни, потому что сценарии не были зафиксированы.
- Расплывчатые формулировки. Слова вроде «удобно», «интуитивно», «в духе Apple» не дают понимания. Удобство — субъективно. Лучше уточнить: «важно, чтобы поиск выдавал результат за 0,6 сек на выборке 10 000 товаров», или «в панели администратора должна быть сортировка по дате добавления».
- Противоречия в требованиях. Классическая ловушка: заказчик хочет, чтобы проект был дешёвым, с максимальной скоростью, уникальным дизайном и высокой надёжностью сразу. Это невозможно одновременно. Опишите, какие приоритеты — важны ли сроки, или бюджет ограничен, или нужен wow-эффект. Это поможет команде сбалансировать ожидания и архитектуру решения.
- Функционал не связан с бизнес-целями. Например, заказчик хочет личный кабинет, но не может объяснить, зачем он нужен. А вся нужная информация и так доступна на почту. Такие «маразмы удобства» только удлиняют сроки и требуют ресурсов на непроверенные гипотезы.
- Визуальные референсы без пояснений. Часто заказчики прикладывают “пример красивого сайта”, но не указывают, что конкретно им нравится — цветовая гамма, структура карточки, анимация переходов? Это ведёт к разночтениям. Мы всегда уточняем: «Что именно вы хотите перенести из этого примера и почему?». Без контекста «референс» скорее мешает, чем помогает.
В одном из проектов клиент хотел функционал «как в Airbnb», но без авторизации, оплаты, личного кабинета и рейтингов. По итогу требований не осталось вовсе — всё было исключено под предлогом “ну это потом”, а backend-инфраструктура была построена напрасно.
Важно: критически пересматривайте каждую функцию с позиции «как она помогает пользователю выполнить задачу» и «насколько она критична для MVP». Это дисциплинирует и делает ТЗ управляемым инструментом.
Пример ТЗ с пояснениями: как выглядел бы хороший документ
Пример ниже — фрагмент реального ТЗ, адаптированный под образовательное мобильное приложение. Мы покажем ключевые блоки и прокомментируем, что критичное, а что можно упростить или адаптировать.
- Цель проекта:Создание мобильного приложения (iOS/Android) для онлайн-обучения сотрудников региональных офисов сети “X”. Курс состоит из модулей, тестов, видеолекций. Пользователи авторизуются по email, доступны прогресс и рейтинг.
- Комментарий: начало должно объяснять, зачем делается продукт, кому он нужен, какую боль закрывает.
- Описание пользовательских сценариев:Пользователь открывает приложение → видит приветственный экран с кнопкой регистрации
- После подтверждения кода по email — переходит в «Личный кабинет»
- В клиенте доступны модули по темам: доступ открывается последовательно, по итогу — тест
- Тест содержит 10 вопросов, система фиксирует правильность, выводит результат
- В разделе «Статистика» — процент прохождения и рейтинг пользователей, обновляемый онлайн
- Комментарий: конкретные последовательности действий дают понимание логики продукта, без привязки к дизайну.
- Технические требования:FE: Flutter (iOS ≥ 13, Android ≥ 9)
- BE: Laravel + MySQL, REST API
- Push-уведомления через Firebase
- OAuth2 через email или Google
- Комментарий: конкретика в стек-технологии, базовая архитектура соединяется в чёткое понимание ограничения реализации.
- Визуальные референсы:Ссылка на Figma: https://figma.com/xxx. Отличие от макета — в карточках докрутить отображение статуса “пройден” рядом с названием модуля.
- Сроки этапов разработки:Дизайн прототипов — 7 дней
- Разработка MVP — 3 недели
- Тестирование и приёмка — 1 неделя
- Комментарий: указывается план по этапам, чтобы заказчик мог отслеживать статус.
Такой формат воспринимается быстро, легко комментируется и адаптируется, и с большим уровнем вероятности исключает споры по итогам сдачи работы.
Лучший тест на качество ТЗ: спросите стороннего менеджера или аналитика, «может ли он по документу построить план работ без дополнительного общения». Если да — значит, документ составлен на отличном уровне.
Шаблон ТЗ: короткий универсальный каркас
Ниже — универсальный шаблон технического задания, на который можно опереться в любом проекте. Он не заменяет проработку, но даёт чёткий скелет, к которому легко добавить детали. Структура подходит как для начала проекта с подрядчиком, так и для собственной команды разработки.
- Название проекта и цельКраткое определение: что за продукт, для кого и зачем. Укажите основные задачи и проблему, которую он решает.
- Описание продуктаКакие ключевые функции должен выполнять продукт. Можно кратко, общими словами, с последующей детализацией в пользовательских сценариях и блоках логики.
- Целевая аудиторияКто будет использовать продукт: возраст, профессия, техническая грамотность, поведение. Это влияет на UX, необходимую адаптацию или язык сообщений.
- Пользовательские сценарииКак пользователи взаимодействуют с продуктом. Опишите в виде последовательностей действий или user story: «Как пользователь, я хочу… чтобы…»
- Структура интерфейса (референсы или прототипы)Можно дать ссылку на Figma, скриншоты, эскизы. Обязательно прокомментировать: что принципиально, что — лишь визуальный ориентир.
- Функциональные требованияОсновной функционал (регистрация, фильтр, чат и т.д.);
- Бизнес-логика (правила работы компонентов, зависимости);
- Дополнительные функции (уведомления, оффлайн-режим, импорт-экспорт данных).
- Технические требованияПлатформы (веб, iOS, Android);
- Технологии (например, React, Laravel, PostgreSQL);
- Интеграции (например, CRM, 1С, платежные шлюзы);
- Ограничения (по архитектуре, безопасности, законодательству).
- Этапы и сроки разработкиРазработка прототипов — [дата начала] → [конец];
- Создание интерфейса (UI) + фронтенд — [срок];
- Бэкэнд и интеграции — [срок];
- Тестирование, релиз — [срок].
- Критерии приёмкиСписок требований, при которых считается, что этап завершён (например, “работа формы с отправкой Ajax-вызова, получение ответа сервера, валидация на клиенте и сервере”).
- Ответственные лица и коммуникацииКто отвечает за каждый блок. Назначьте менеджера проекта, технического эксперта, контактное лицо клиента. Определите каналы связи: Trello, Notion, Zoom, Telegram, email. Укажите частоту планёрок и максимальное время ответа на комментарии.
Советы по адаптации:
- Добавьте блок “права доступа”, если проект предполагает разделение ролей;
- Добавьте схему навигации по экрану, если это приложение с глубокой архитектурой экранов;
- Если большая часть логики связана с API — выделите отдельный раздел с методами, параметрами и статусами ответов;
- Обязательно включайте описание ошибок и «что должно произойти при сбое».
Готовый шаблон можно скопировать в Google Docs, Notion, или в редактор документации (например, Confluence) — под свои нужды.
Как ускорить процесс: советы для заказчиков
Составление ТЗ — задача небыстрая, но при должной подготовке можно существенно сократить время и снизить фрустрацию всех участников. Вот что реально помогает:
- Предварительное описание задачи. Не обязательно сразу писать идеальное ТЗ. Начните с таблицы или текстового файла со списком функций, которые видите критичными. Даже три экрана и краткий список действий — уже значительный прогресс.
- Подбор референсов. Соберите 2–3 интерфейса, которые вам близки по духу. Прокомментируйте: что именно нравится (цвета, структура, скорость работы, оформление карточек, поведение при скролле).
- Согласуйте цели. Внутри команды заказчика лучше заранее решить, зачем создаётся продукт, какие сценарии являются ключевыми. Проведите короткую сессию вопросов: «что будет, если убрать эту фичу — станет ли продукт бесполезным?»
- Используйте консультанта или технического менеджера, особенно если вы не разбираетесь в архитектуре, API или технологиях. Работать с таким человеком выгоднее, чем собирать команду “вслепую”. Он поможет составить грамотное ТЗ и уточнить все сложные вопросы.
- Помните: время, потраченное на подготовку ТЗ — это оптимизация разработки, не тормоз. Наличие документа снижает количество правок, поворачивает коммуникацию в конструктив и помогает команде фокусироваться на сути, а не на «угадай, чего хочет заказчик».
В нашей практике качественное начальное описание экономит до 25% бюджета проекта — потому что отпадает необходимость “разгрестись после запуска”.
Если сложно — поможем составить
Хорошее ТЗ — это не просто структурный текст, а мощный инструмент управления ожиданиями, ресурсами и сроками. Но сформулировать логику проекта так, чтобы её понимали разработчики, UI-дизайнеры и QA, — непросто.
Если у вас есть задумка, но пока всё в виде мыслей и ссылок — мы можем помочь: оформить из идей понятный, технически проработанный документ с диаграммами, схемами, требованиями. Это даст вам уверенное основание стартовать, точные оценки сроков и бюджета, и избежит последующих недоразумений.
Пишите — мы умеем извлекать структуру даже из самых абстрактных описаний и превращать её в рабочее ТЗ, которое понимают все участники проекта.
