Задача: как прочитать и понять ТЗ
Техническое задание (ТЗ, 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/коллег | Собрать все вопросы в один список |
| Додумывать вместо уточнения | Риск несоответствия ожиданиям | Если неочевидно — спроси |
Связанные темы
- _MOC Процессы
- Декомпозиция задач
- User Stories и Acceptance Criteria
- Вопросы -- когда и как спрашивать