Тайм-менеджмент программиста: работа по ночам

Важно: эта статья написана больше 5 лет назад. Некоторые взгляды у меня поменялись, поэтому некоторые моменты я ещё допишу.

Во-первых, далеко не все программисты работают по ночам потому что им это нравится. Некоторые говорят, что работа по ночам эффективнее: больше успеваешь из-за того, что меньше отвлекаешься.

Во-вторых, работа ночью (после обычной работы днем) чаще результат хренового планирования и сжатых сроков, когда все впритык и мы горим. Бывает, что причиной таких сроков является сам программист: он пообещал сделать работу к определенному сроку, но споткнулся на недостатке информации и застрял в задаче. Бывает, что и менеджер проекта обещает заказчику нереальные сроки, чтобы тот никуда не ушел и подгоняет коллектив (отдельный котел в аду стоит для менеджеров, которые боясь просрать все дедлайны, сообщают клиенту один срок, а коллективу говорит срок в двое меньший).

Чтобы была хоть какая-то продуктивность за день, нужно погрузится в работу, то есть сосредоточится. Концентрация внимания требует больших усилий от человека, а еще может зависеть от внешних условий. Базовая «стоимость» концентрации составляет 15-20 минут. То есть каждый факт отвлечения может потребовать дополнительные 15-20 минут, чтобы вернуться назад в состояние рабочего транса.

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

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

Есть такая штука: «расписание творца». Если коротко, то это период погружения в работу без прерывания на дневные митапы, болтовню в курилке, социальные сети, да даже на вопросы окружающих. Противопоставляют такому расписанию «расписание менеджера»: день насыщен общением и работа руками делается минимально (либо не делается совсем). И то, и другое расписание имеет право на жизнь, так как решает свою задачу. Даже программисту полезно выйти из своей «coding cave» и пообщаться с коллегами (к вопросу коммуникаций мы еще придет). Например, чтобы узнать как работает компонент или сервис, который поддерживает коллега и который нужно использовать в своей части работы. Или поделиться тем, как идет собственная работа, потому что коллеги ждут результат и зависят от него.

Коллеги практически хором говорят, что работают поздно вечером потому что их просто ничего не отвлекает. Совсем не потому, что они «просыпаются к вечеру» и они «совы». У окружающих либо уже нет сил дергать своими вопросами, либо уже давно свалили из офиса. Другие причины называют редко. Речь обычно идет не о времени суток, а о количестве раздражителей (кстати, по этой причине я против открытых пространств в офисе, где все команды смешаны в кучу).

Тайм-менеджмент программиста отличается от менеджерского. Я редко могу сказать: так, вот на эти задачи я потрачу два часа, на эти — по одному часу и вот эту сделаю за сорок минут. Расчет времени идет прямо во время работы. Предсказумость временных затрат появляется когда работа выполняется, как минимум в третий раз. Но тут еще есть нюанс: я повторяющиеся задачи стандартизирую и автоматизирую ( что, кстати, тоже требует времени). Поэтому мой совет: если вы проджект менеджер, то интересуйтесь ходом работы, а не сроками. Узнавайте что сделано и сверяйтесь со списком требований или задач, но не задавайте вопрос «Когда будет готово?» или «Оцени примерное время на задачу». В 99% случаев будет либо завышение, либо чрезчур оптимистичное представление об объемах работы (в меньшую сторону, хотя по факту требуется больше времени).