Выпуск со скоростью света

Andrew Neverov
CTO hints

--

Уровень: ★★☆☆☆ (начинающие инженеры)

Один из ключевых показателей здоровья вашей инженерной организации — скорость выпуска нового кода. Почему так происходит?

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

Многие организации, не понимая ценности настоящей обратной связи, проводят недели и месяцы в бесконечных согласованиях по поводу того, как должен выглядеть продукт. А потом все равно выпускают говно. Если можно было выпустить сразу и уже через неделю исправить — чего тянуть?

Картинка любимого Макса Дорофеева

Несколько технических приемов, которые помогут выпускать чаще:

1. Задачи порезаны на мелкие куски (1–2 дня)

Мы очень плохо умеем оценивать сроки разработки. Когда у вас стоит срок выполнения задачи четыре дня, то там и вся неделя. А где неделя, там и “ой, а давай вот эту мелкую штуку добавим”. Опа, уже две, и так далее. Разбивайте все задачи дольше двух дней на подзадачи, которые можно выпускать независимо. Ничего страшного скрыть, например, не до конца готовый кусок интерфейса за feature toggle, зато код уже в продакшене.

2. Все тесты автоматические

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

3. Деплоят роботы

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

4. Вы всегда знаете в каком состоянии релиз и как его откатить

При выкатке релиза вы должны моментально понять, что происходит. Смотрите метрики и, если, допустим, количество ошибок превышает определенный порог, откатывайте. Потом разбирайтесь, никакого “ну ща я там заценю и быстро пофикшу”. Откатите, потом спокойно без паники разберетесь.

Еще почитать по теме:

  1. Отличная статья в блоге Intercom.
  2. 6 глава отличной книги Manager’s Path.

--

--

Andrew Neverov
CTO hints

Helps smart people get things done with technology.