Как написать техническое задание (ТЗ): гайд для бизнеса и аналитиков
Что такое ТЗ и зачем оно нужно
Техническое задание (ТЗ) — документ, описывающий, что должно быть сделано, с какими характеристиками и в какие сроки. ТЗ выполняет три функции:
- Юридическая — основание для договора. Если результат не соответствует ТЗ — исполнитель переделывает за свой счёт
- Проектная — источник истины для команды. Разработчики, дизайнеры, тестировщики сверяются с ТЗ
- Коммуникационная — перевод с языка бизнеса («хочу сайт как у конкурента») на язык разработки («CMS WordPress, интеграция с 1С через REST API»)
Структура ТЗ: что должно быть в документе
1. Общие сведения
- Полное наименование системы/продукта
- Заказчик и исполнитель
- Основание для разработки (договор №, решение руководства)
- Плановые сроки
2. Цели и назначение
Зачем создаётся система? Какую проблему решает?
Пример: «Создать интернет-магазин для автоматизации приёма заказов и снижения нагрузки на менеджеров с 50 звонков/день до 10».
3. Объём работ
Что входит, а что — явно не входит в проект.
| Входит | Не входит |
|---|---|
| Разработка сайта на WordPress | Наполнение контентом (делает заказчик) |
| Интеграция с 1С | Интеграция с CRM (отдельный проект) |
| Дизайн 15 страниц | Логотип и брендбук (готовы) |
4. Функциональные требования
Что система должна делать. Каждая функция описывается по схеме: актор → действие → результат.
Пример для интернет-магазина:
- FR-01: Пользователь может искать товары по названию и категории
- FR-02: Пользователь может добавлять товары в корзину и изменять количество
- FR-03: Пользователь может оформить заказ с доставкой (3 способа) и оплатой (2 способа)
- FR-04: Администратор может добавлять/редактировать/удалять товары
- FR-05: Администратор может просматривать отчёт по заказам за период
5. Нефункциональные требования
Качество системы.
| Категория | Требование |
|---|---|
| Производительность | Страница каталога загружается за < 2 сек при 1000 товаров |
| Надёжность | Доступность 99.5% (менее 4 часов простоя в месяц) |
| Безопасность | HTTPS, данные карт не хранятся, пароли хешированы (bcrypt) |
| Масштабируемость | Выдерживает 500 одновременных пользователей |
| Кроссплатформенность | Chrome, Firefox, Safari последних версий + мобильные |
| Локализация | Русский + английский, переключение языка |
6. Описание интеграций
С какими внешними системами общается новая система, по какому протоколу, в каком формате.
Пример:
- 1С:Предприятие — обмен заказами и остатками через REST API (JSON)
- Платёжный шлюз (Сбер) — приём платежей через API эквайринга
- CDEK (доставка) — расчёт стоимости и трекинг через API
7. Пользовательские сценарии (Use Cases)
Описание ключевых путей пользователя.
Пример: «Покупка товара»
- Пользователь заходит на главную страницу
- Вводит «дрель» в поиск
- Выбирает товар из выдачи → карточка товара
- Нажимает «В корзину» → товар в корзине
- Нажимает «Оформить заказ» → форма: контакты, адрес, способ оплаты
- Заполняет форму → нажимает «Оплатить»
- Перенаправляется на страницу платёжного шлюза
- После оплаты → страница «Заказ принят, номер 12345»
- Получает email с подтверждением
8. Макеты и дизайн
Ссылки на Figma/Sketch + описание основных состояний:
- Нормальное состояние
- Пустое (первый запуск, нет данных)
- Ошибка (404, 500, ошибка валидации)
- Загрузка (спиннер, скелетон)
- Edge cases (очень длинный текст, 0 товаров в корзине)
9. Требования к администрированию
- Роли и права доступа (админ, менеджер, контент-менеджер)
- Как добавлять/удалять пользователей
- Резервное копирование (как часто, где хранить)
- Логирование (какие события, хранение логов 30 дней)
10. Критерии приёмки
Как заказчик поймёт, что работа выполнена?
Пример:
- Пройдены все приёмочные тесты (список тестов — приложение к ТЗ)
- Проведено нагрузочное тестирование (500 одновременных пользователей, без ошибок)
- Проведено регрессионное тестирование перед сдачей
- Развёрнуто на production-сервере, настроен CI/CD
- Передана документация: инструкция администратора, инструкция пользователя
ГОСТ 34 vs Agile: как писать ТЗ под разные подходы
Waterfall / ГОСТ 34: ТЗ = контракт
ТЗ пишется до начала разработки. Фиксируется всё: функции, интерфейсы, интеграции. Изменения — через формальный запрос (Change Request).
Плюсы: предсказуемые бюджет и сроки. Минусы: если в процессе выяснится, что «хотели не то» — переделка стоит дорого.
Когда применять: госпроекты, стройка, fixed-price контракты.
Agile: ТЗ = бэклог + Definition of Ready
«ТЗ» — это не один документ, а:
- User Story Map — общая картина продукта
- Бэклог — приоритезированные user stories
- Definition of Ready — критерии готовности истории к взятию в спринт
- Прототипы (Figma) + Acceptance Criteria
Истории уточняются на grooming'ах перед спринтами. Это позволяет менять приоритеты.
Плюсы: гибкость. Минусы: невозможно зафиксировать бюджет на весь проект.
Когда применять: разработка ПО, стартапы, customer-facing продукты.
Типовые ошибки в ТЗ
1. Смесь «что» и «как»
ТЗ должно описывать что должно быть сделано, а не как.
| Плохо (как) | Хорошо (что) |
|---|---|
| «Использовать React 18 и Redux» | «Одностраничное приложение с бесшовной навигацией» |
| «Развернуть на AWS EC2 t3.medium» | «Хостинг с автоматическим масштабированием» |
2. Отсутствие границ проекта
ТЗ без раздела «не входит» обречено на scope creep (расползание границ). Каждое новое пожелание: «мы же договаривались» со стороны заказчика, «этого не было в ТЗ» со стороны исполнителя.
3. Расплывчатые формулировки
| Плохо | Хорошо |
|---|---|
| «Система должна быть быстрой» | «Время отклика API < 200ms при 100 RPS» |
| «Удобный интерфейс» | «Пользователь оформляет заказ за < 4 кликов» |
| «Защита от взлома» | «OWASP Top 10, SQL-инъекции, XSS, CSRF» |
4. ТЗ без критериев приёмки
Как заказчик поймёт, что работа сделана? «Посмотрю и скажу» — путь к бесконечным правкам.
5. Ошибка выжившего из прошлого проекта
Копирование ТЗ из похожего проекта без адаптации. Бизнес-процессы разные, интеграции разные, контекст разный.
Шаблон ТЗ (лёгкая версия для малого бизнеса)
Для проектов до 500 тыс. руб. достаточно такого чек-листа:
- Цель проекта (1 абзац)
- Функции (список: что делает система)
- Роли пользователей (кто чем пользуется)
- Интеграции (таблица: система, протокол, формат, контакты)
- Макеты (ссылка на Figma или эскизы)
- Что не входит (список)
- Критерии приёмки (список)
- Сроки и бюджет (этапы, даты, стоимость)
Связанные статьи: Архитектурные роли в ИТ: кто пишет ТЗ, Справочник аналитика: требования к ПО, Use Cases по Коберну, Scrum vs Kanban vs Waterfall, Как написать понятное руководство