Задача: как прочитать и понять ТЗ

Техническое задание (ТЗ, task) — описание работы, которую нужно сделать; умение правильно читать и прояснять задачу до начала реализации экономит часы переделок.

Зачем нужно

Большинство переделок происходит не из-за плохого кода, а из-за неверного понимания задачи. "Я думал, что нужно X" против "мы имели в виду Y" — классическая ситуация, стоящая командам дни работы. Навык правильно читать ТЗ и задавать уточняющие вопросы — один из самых ценных для Junior-разработчика.

Где используется

  • Ежедневная работа — каждая задача в Jira/Linear/Notion
  • RS School — задания и финальные проекты
  • Фриланс — чем точнее понял задачу, тем меньше переделок
  • Собеседования — правильные вопросы о задаче оцениваются положительно

Алгоритм работы с задачей

Шаг 1 — Прочитать задачу полностью
  Не начинать кодить после первого абзаца.
  Дочитать до конца, включая примеры и acceptance criteria.

Шаг 2 — Выделить ключевые требования
  Что конкретно нужно сделать?
  Что является результатом?

Шаг 3 — Найти неоднозначности
  Где написано "как-то", "примерно", "наверное"?
  Что не описано, но явно нужно?

Шаг 4 — Задать уточняющие вопросы
  ДО начала разработки, не после.

Шаг 5 — Декомпозировать
  Разбить на подзадачи.

Шаг 6 — Оценить
  Только после полного понимания задачи.

Чеклист вопросов к задаче

Про требования:
□ Для кого это делается? (роль пользователя)
□ Какой ожидаемый результат? (критерий успеха)
□ Что происходит при ошибке? (edge cases)
□ Что если пользователь делает X вместо Y?

Про интеграцию:
□ API уже готов или я делаю его тоже?
□ Есть макеты? Есть дизайн в Figma?
□ На каких устройствах должно работать?

Про приоритеты:
□ Что обязательно (must have), что опционально?
□ Когда нужно сдать?
□ Есть зависимости от других задач?

Типичные ловушки в ТЗ

Расплывчатые слова:
"Быстро"        → насколько быстро? Метрика?
"Удобно"        → по чьим критериям?
"Все данные"    → какие именно данные?
"Список"        → отсортированный? Фильтрованный?

Подразумеваемое:
"Сделай форму"  → подразумевает валидацию? Отправку? Уведомление?
"Покажи ошибку" → где? Какой текст? Как долго?

Пример разбора задачи

Задача: "Добавить пагинацию к списку пользователей"

Вопросы до начала:
1. Сколько элементов на странице? (10? 20? Настраиваемо?)
2. URL меняется (/users?page=2) или без перезагрузки?
3. Что показывать если нет результатов?
4. Нужна ли "Загрузить ещё" вместо номеров страниц?
5. API поддерживает пагинацию (limit/offset)?

Частые ошибки

Ошибка Проблема Решение
Начинать кодить сразу Переделка 50% работы Прочитать ТЗ полностью
Не задавать вопросы Делаешь не то Задавать до начала, не в конце
Задавать слишком много вопросов Раздражает PM/коллег Собрать все вопросы в один список
Додумывать вместо уточнения Риск несоответствия ожиданиям Если неочевидно — спроси

Связанные темы

Ресурсы