От «делаю по ТЗ» к «решаю задачу сам»

Переход в middle — это момент, когда вам перестают разжёвывать задачу и начинают давать цель.

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

В чём суть первого перехода

Junior работает в режиме «есть тикет — есть шаги». Кто-то старший уже разбил проблему на понятные кусочки, и задача junior — аккуратно их реализовать. Middle берёт задачу, которую ещё никто не разбил, и декомпозирует её сам. Это не значит «работать без помощи» — это значит самому строить план, а не получать его готовым.

Как выглядит сдвиг на примере

Этап задачиJuniorMiddle
Понять задачуЖдёт детального ТЗСам уточняет требования вопросами
ПланПолучает готовыйДекомпозирует сам
ТупикСразу зовёт старшегоСначала исследует, потом зовёт с гипотезами
Готово«Я закодил»«Покрыл тестами, проверил края, готов к ревью»

Есть и обратная сторона самостоятельности, которую важно не перепутать с ней. Самостоятельный middle не значит «молчаливый одиночка, который всё решает сам и ни с кем не советуется». Наоборот: он больше коммуницирует, потому что сам инициирует уточнения, согласует предположения, проверяет понимание с продактом. Автономность — это про то, кто держит инициативу в продвижении задачи, а не про отказ от помощи. Junior ждёт, пока его подтолкнут; middle толкает задачу сам, привлекая нужных людей в нужный момент.

Как работает под капотом

Что мешает junior решать самому? Не нехватка знаний синтаксиса, а отсутствие привычки самому формулировать недостающее. Junior воспринимает пробел в задаче как «мне не дали данных». Middle воспринимает тот же пробел как «я должен этот пробел закрыть — спросить, поисследовать, принять разумное предположение и зафиксировать его». Сдвиг происходит в голове: вы перестаёте ждать, что кто-то снимет неопределённость за вас.

Получили задачу «добавить экспорт в CSV»:

  junior: жду, пока скажут, какие колонки, какая кодировка, куда класть файл
  middle: выписал открытые вопросы -> на 3 ответил сам разумным дефолтом
          -> 2 спросил у продакта -> начал делать

Практический приём: список открытых вопросов

Получив задачу, не бросайтесь кодить и не замирайте в ожидании. Выпишите все непонятные места. На часть ответьте сами разумным дефолтом (и зафиксируйте предположение в тикете). На остальное задайте точечные вопросы. Этот простой приём — и есть переход к middle: вы взяли управление неопределённостью на себя.

Как тренировать самостоятельность

Переход к самостоятельному решению не происходит сам собой — его можно тренировать сознательно. Хороший приём: прежде чем идти к старшему с вопросом, доведите его до состояния «я попробовал A, B и C, вот что получилось, моя гипотеза такая». Часто в процессе подготовки такого вопроса вы находите ответ сами. Если нет — вы приходите не с пустым «не работает», а с проделанной работой, и старший видит в вас растущего инженера, а не источник прерываний.

Второй приём — просить у тимлида задачи «на вырост»: чуть менее формализованные, чем обычно. Скажите прямо: «Дай мне задачу, где придётся самому разобраться в требованиях, я хочу потренировать декомпозицию». Большинство руководителей это приветствуют, потому что им выгоднее иметь самостоятельного middle, чем junior, которого надо вести за руку. Так вы запускаете цикл роста сознательно, а не ждёте, пока он случится.

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

  • Замирать при первом пробеле в задаче. Неопределённость — норма, ваша работа в том числе её снимать.
  • Бросаться кодить без понимания. Другая крайность: начать делать, не уточнив, и сделать не то.
  • Считать «закодил» = «готово». Middle доводит до тестов, граничных случаев и готовности к ревью, а не до первого зелёного запуска.

Итоги

  • Junior реализует готовый план, middle строит план сам.
  • Ключевой навык — самому снимать неопределённость, а не ждать ТЗ.
  • Приём «список открытых вопросов» делает переход управляемым.
  • «Готово» для middle включает тесты и граничные случаи.
Проверьте себя
1. Главное отличие middle от junior в работе с задачей?
AMiddle быстрее печатает
BMiddle сам декомпозирует задачу и снимает неопределённость
CMiddle никогда не задаёт вопросов
DMiddle работает только в одиночку
2. Что делать с непонятными местами в задаче на пути к middle?
AЗамереть и ждать полного ТЗ
BВыписать открытые вопросы: часть закрыть дефолтом, остальное уточнить
CБросаться кодить наугад
DПередать задачу обратно