Продуктивность

Глубокая работа программиста: как защитить время на код от бесконечных прерываний

Разработчик открывает задачу, начинает выстраивать в голове модель того, как связаны пять модулей, которые нужно поправить, — и тут прилетает сообщение в Slack с вопросом «на минутку». Через полторы минуты вопрос закрыт, но модель в голове разрушена, и следующие пятнадцать минут уходят на то, чтобы вспомнить, где именно была мысль до прерывания. Это не редкий случай, а обычный рабочий день большинства команд, и именно поэтому «глубокая работа» — это не модное словосочетание из книг про продуктивность, а конкретная инженерная проблема, которую можно и нужно решать процессом, а не силой воли.

Почему одно короткое прерывание стоит дороже, чем кажется

Разница между «переключиться на письмо» и «переключиться на отладку сложной гонки данных» огромна, но в календаре и в голове коллег обе задачи часто выглядят одинаково — как «минутка времени». Проблема в том, что написание и понимание нетривиального кода требует удержания в рабочей памяти большого количества связанного контекста: какие переменные откуда взялись, какие инварианты уже проверены, какую гипотезу вы сейчас проверяете и какие уже отбросили. Прерывание не просто останавливает работу — оно сбрасывает почти весь этот контекст, и восстановить его нужно заново, даже если сам вопрос коллеги занял тридцать секунд.

Отсюда и ощущение, знакомое почти каждому разработчику: день был забит встречами и сообщениями, но по факту написанного и понятого кода — крайне мало. Дело не в лени и не в неэффективности, а в том, что большая часть дня ушла на входы и выходы из состояния сосредоточенности, а не на саму работу внутри него.

Что на самом деле убивает фокус — не только уведомления

Если спросить команду, что мешает сосредоточиться, чаще всего назовут Slack и почту. Но на практике источников прерываний обычно больше, и часть из них встроена в саму культуру команды:

Полезно один раз честно провести этот разбор в команде: не искать виноватых, а зафиксировать, какие именно привычки на практике режут длинные куски времени на мелкие фрагменты, непригодные для сложной работы.

Как выстроить блоки глубокой работы, которые не развалятся через неделю

Индивидуальные лайфхаки вроде «выключи уведомления» работают плохо в одиночку, если вся остальная команда продолжает ожидать мгновенных ответов. Устойчивее работают договорённости на уровне команды, а не только личная дисциплина:

  1. Выделите защищённые окна в общем календаре. Один-два блока по 90–120 минут в день, помеченные как занятые, работают лучше, чем расплывчатое намерение «сегодня посижу сосредоточенно». Важно, чтобы это была видимая для всей команды договорённость, а не личный секрет.
  2. Разделите день на «глубокие» и «мелкие» часы. Переписку, код-ревью, административные задачи стоит группировать в определённые окна — например, после обеда, — а не проверять их каждые десять минут в течение всего дня.
  3. Договоритесь об ожидаемом времени ответа явно, а не молча. Если команда открыто согласится, что ответ в чате в течение пары часов — это нормально, а не признак нерасторопности, у людей появляется официальное разрешение не проверять сообщения постоянно.
  4. Уменьшайте стоимость возврата в контекст. Короткая заметка себе перед тем, как отвлечься («сейчас проверяю гипотезу X, следующий шаг — посмотреть в логах Y»), экономит куда больше времени при возврате, чем кажется на первый взгляд.
  5. Защищайте фокус других, а не только свой. Если вопрос коллеге не горит прямо сейчас, его почти всегда можно записать и задать в следующем синхронном окне, а не прерывать чужую сосредоточенную работу ради удобства спросить сразу.
Фокус разрушается не одним большим отвлечением, а десятком маленьких, каждое из которых само по себе кажется безобидным.

Итог

Глубокая работа — это не вопрос личной силы воли и не повод чувствовать вину за проверку чата. Это вопрос среды: если культура команды поощряет мгновенные ответы на всё подряд, даже самый дисциплинированный разработчик будет проводить день в постоянных микропереключениях. И наоборот — если в команде явно согласовано, когда нормально не отвечать сразу, а когда действительно нужно прерваться, глубокая работа перестаёт быть привилегией отдельных людей и становится обычной частью процесса. Начать стоит с малого: выбрать один защищённый блок времени в день и явно договориться с командой, что в это время можно не быть на связи.

← Все статьи
Я люблю Алину Цой (Билялову)