Перейти к основному содержанию
Бизнес и процессы3 мин чтения

Техническое задание: как описать задачу, чтобы получить нужное

Половина конфликтов в разработке растёт из фразы «мы думали, это само собой разумеется». Разбираем, как описать задачу без такой формулировки.

Многостраничный документ с пометками и чертёжной линейкой на столе

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

Структура, которая работает

  1. Цель: какую проблему решаем и что изменится в работе компании после запуска.
  2. Роли: кто пользуется системой и что каждому из них доступно.
  3. Сценарии: последовательность шагов для каждой роли от начала до завершения задачи.
  4. Данные: какие сущности храним, какие поля обязательны, что с чем связано.
  5. Интеграции: с какими системами обмениваемся данными и в какую сторону.
  6. Ограничения: сроки, нагрузка, требования к хранению данных, устройства пользователей.
  7. Критерии приёмки: проверяемые утверждения, по которым работа считается выполненной.

Как писать критерии приёмки

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

Расплывчатые формулировки и их проверяемые версии
Так писать не стоитТак проверяемо
Удобный поискПоиск находит товар по части названия и артикулу, показывает до 20 результатов
Современный дизайнВёрстка работает от 360 пикселей ширины, без горизонтальной прокрутки
Быстрая загрузкаОсновное содержимое главной появляется за 2,5 секунды на мобильном интернете
Защищённые данныеДоступ к чужому заказу по прямой ссылке возвращает отказ
Гибкие праваРоли: администратор, менеджер, наблюдатель; таблица доступов приложена

Описание данных экономит больше всего времени

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

Достаточно простой таблицы вместо формальной схемы
Заказ
  номер            обязательное, уникальное
  клиент           ссылка на клиента, обязательное
  статус           новый / в работе / выполнен / отменён
  сумма            считается из позиций, не вводится вручную
  адреса доставки  от одного до нескольких
  комментарий      необязательное, до 1000 символов
  создан           дата и время, заполняется системой

Позиция заказа
  заказ            ссылка на заказ
  товар            ссылка на товар
  количество       целое, больше нуля
  цена             фиксируется на момент заказа, не берётся из товара

Чего в задании быть не должно

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

Час, потраченный на уточнение сценария до начала работы, экономит день переделок после демонстрации.

Задание как живой документ

Требования меняются — это нормально. Ненормально, когда изменения происходят на словах. Договоритесь, что любое изменение фиксируется письменно с пометкой, как оно влияет на срок и стоимость. Тогда к концу проекта не возникнет спора о том, входила ли функция в первоначальную договорённость.

Частые вопросы

Кто должен писать техническое задание
Содержательную часть — заказчик, потому что он знает процесс. Формализацию, описание данных и критерии приёмки — команда разработки. На практике документ рождается за несколько встреч, а не передаётся в одну сторону.
Что делать, если задание написать некому
Заказать отдельный этап обследования. Мы разбираем процесс, описываем сценарии и данные, готовим оценку. Этап платный, но он снимает главный риск: оплату разработки того, что не решает задачу.
Насколько подробным должно быть задание
Достаточно подробным, чтобы два независимых разработчика поняли требование одинаково. Если формулировку можно прочитать двумя способами, её нужно уточнить.
техническое заданиеуправление проектомтребования

Похожая задача в вашем проекте?

Разберём вашу ситуацию и пришлём оценку по этапам — без обязательств и общих слов.

Обсудить задачу

Вопрос по статье
или по своему проекту

Отвечаем на заявки в течение одного рабочего дня. Если задача не наша — скажем прямо и подскажем, к кому обратиться.

Написать нам

Поля со звёздочкой обязательны для заполнения.