Реактивность

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

Тупит база потому что где-то N+1 или плохие индексы. Отваливается АРІ потому что роскомнадзор поблочил подсети амазона. Заказчик забыл оплатить хостинг и все попадало, а назад автоматически не поднялось. 3rd-party API внезапно начали пятисотить. Заказчик просит добавить поле в отчет, заказчик просит качнуть стату которую нет смысла добавлять в отчет, миллион проблем почти каждый день.

Это нормально, если конечно не фиксишь одно и то же постоянно. Например сервис постоянно падает от высокой нагрузки, а вместо того, чтобы разбираться что её порождает, мы просто ребутаем. Или пользователь генерит отчет, который покрывает всю базу в результате чего подвисает все, а мы, вместо того, чтобы не давать генерить такие отчеты или сделать рид-реплику или еще что, просто ребутаем сервера :)

Любое приложение содержит бесконечное количество ошибок, и фиксить их можно столько, сколько будет существовать сервис, а если он еще и будет активно развиваться то этот процесс не остановить.

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

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

В таком режиме становится трудно сосредоточиться и работать вообще, потому что мозг думает "зачем браться за новую задачу, если щас все равно прилетит с прода и придется отвлекаться? давай лучше твитор полистаем, а?" и прокрастинирует так целый день. А под конец дня оказывается что пофикшена одна минорная бага а остальное время потрачено впустую. Печаль.

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

Бороться с этим конечно же можно — самый простой способ это просто таймбоксить время на текучку, то есть, выделять, например, 1-2 часа в день на такие вещи а остальное время — на спокойные активности. Но пока вероятность того, что все упадет, остается, то давление и беспокойство не проходит.


Сподобалось? Долучайтеся до мого телеграм каналу: https://t.me/full_of_hatred