Деплой вечером в праздник, или как мы уронили прод🤬
В понедельник в Германии был выходной, а вот мои коллеги из Испании работали. Один из наших миддлов закончил большую фичу, создал пулл-реквест, второй его зааппрувил, и они не придумали ничего лучше, чем в конце дня задеплоить всё это в прод.
Итог? Поломали критичный функционал. Причем сломали даже не реализацией новой фичи, а тем, что разработчик решил "заодно отрефакторить то, что и так работало".
И тут мы подходим к одной из классических ошибок, которую за свою практику я встречал уже много раз. Мешать в одной ветке разработку важной срочной фичи и рефакторинг соседнего кода — это всегда очень плохая идея.
Код-ревью усложняется, фокус при тестировании размывается, а шанс зацепить то, что стабильно работало, улетает в космос. Мухи должны быть отдельно от котлет. А в случае косяка придется откатывать и срочную фичу.
Во вторник утром я открываю рабочий ноутбук и вижу красные алерты. Сказать, что я был зол — ничего не сказать. Катить большую фичу вечером, без ревью более опытных коллег, без нормальных тестов...
Но эмоции в сторону. Сначала мы потушили пожар: откатили всё на рабочую версию и заново прогнали через систему все ивенты, которые не прошли из-за бага.
Кто-то скажет, что таких разрабов нужно отправлять на мороз. Но они и так сидели напуганные и прекрасно осознавали масштаб своего косяка. Поэтому я выдохнул и спокойно объяснил им, почему такой подход не работает.
Заодно формализовал наши процессы и ввел несколько железных правил:
-Никаких вечерних деплоев для несрочных задач.
-Обязательное ревью от более опытных коллег. Большие фичи теперь ждут аппрува от меня или архитектора, несмотря на всю нашу загруженность.
-Изоляция изменений. Никакого "попутного" рефакторинга в ветках с новыми фичами. Рефакторинг - это отдельная задача и отдельный PR.
- Чек-листы в PR. В пулл-реквестах теперь обязательно нужно перечислять все тест-кейсы, которые были проверены автором.
В конце дня мы собрались еще раз, чтобы обсудить ошибки. Чтобы немного разрядить обстановку, я поделился своими историями из молодости о том, как сам ломал прод. Посмеялись, выдохнули.
И знаете, это сработало лучше любых криков.
Уже сегодня я заметил, как у ребят изменилось отношение к делу. К важным изменениям они теперь подходят с совершенно другим уровнем ответственности.
А один из коллег спустя время сегодня написал мне сообщение с благодарностью за адекватную реакцию и помощь.
Ошибаются все. Вопрос лишь в том, как команда с этими ошибками работает
Post #40
1.69K
- 👏 21
- 👍 11
- ❤ 1
- 😁 1