Выпуск со скоростью света
Уровень: ★★☆☆☆ (начинающие инженеры)
Один из ключевых показателей здоровья вашей инженерной организации — скорость выпуска нового кода. Почему так происходит?
Дело в том, что ценность вашего продукта для пользователей и клиентов может быть реализована только после того, как вы выпустите его на рынок. До момента получения реальной обратной связи все, что вы думаете о ваших пользователях и продуктах — всего лишь смутные догадки и ощущения (даже если они подкреплены исследованиями и фокус-группами). Только когда вы получите настоящий фидбек, вы сможете понять, в какой реальности существует ваш продукт.
Многие организации, не понимая ценности настоящей обратной связи, проводят недели и месяцы в бесконечных согласованиях по поводу того, как должен выглядеть продукт. А потом все равно выпускают говно. Если можно было выпустить сразу и уже через неделю исправить — чего тянуть?
Несколько технических приемов, которые помогут выпускать чаще:
1. Задачи порезаны на мелкие куски (1–2 дня)
Мы очень плохо умеем оценивать сроки разработки. Когда у вас стоит срок выполнения задачи четыре дня, то там и вся неделя. А где неделя, там и “ой, а давай вот эту мелкую штуку добавим”. Опа, уже две, и так далее. Разбивайте все задачи дольше двух дней на подзадачи, которые можно выпускать независимо. Ничего страшного скрыть, например, не до конца готовый кусок интерфейса за feature toggle, зато код уже в продакшене.
2. Все тесты автоматические
Ручное тестирование вас убьет. Представьте, что для того, чтоб выпустить релиз, нужно ждать какого-то непонятного чувака, который будет руками нажимать кнопки. Три дня. Автоматизируйте все тесты, запускайте их на каждый билд и релиз и будет вам счастье.
3. Деплоят роботы
Никаких ручных деплоев, команды релиз-инженеров и прочего дерьма. Автоматизируйте всю цепочку выкатки продукта, начиная от тестового/девелоперского билда, тестового окружения и выкатки в настоящий продакшн. Выкатывать должен тот же человек, что писал код. Если вы не можете этого добиться — у вас недостаточно автоматизации.
4. Вы всегда знаете в каком состоянии релиз и как его откатить
При выкатке релиза вы должны моментально понять, что происходит. Смотрите метрики и, если, допустим, количество ошибок превышает определенный порог, откатывайте. Потом разбирайтесь, никакого “ну ща я там заценю и быстро пофикшу”. Откатите, потом спокойно без паники разберетесь.
Еще почитать по теме:
- Отличная статья в блоге Intercom.
- 6 глава отличной книги Manager’s Path.