Проверочный список для выпуска промышленных приложений с иллюстрациями

Перевод "An Illustrated Enterprise Release Checklist For Applications" - статьи о процессах, необходимых для спокойного и контролируемого выпуска новых версий ваших приложений.

Опубликовано: 30.07.2023

Улучшает сон, приносит радость, повышает управляемость и наблюдаемость релизов.

Автор текста - Noah Mandelbaum, Выдающийся инженер. Автор иллюстраций - Mike Damrath, Старший менеджер. Оригинальная статья на английском.

Разработка приложений требует больших усилий.

Мы встаём и садимся. Мы работаем неделями, чтобы писать чистый код. Мы старательно обдумываем как лучше поддерживать наши приложения, используя идеи, которые Шанти Шридхаран (Santhi Sridharan) описала в своей статье про разработку поддерживаемого программного обеспечения. Иногда мы рефакторим до тех пор, пока наш глаз не замыливается.

И немного разочаровываемся, когда обнаруживаем на релизе, что наше приложение, которое мы любовного разрабатывали, имеет изъяны или ломается в каких-то ситуациях.

Некорректная работа программ может дать клиентам негативный опыт использования, создать риски для бизнеса, привести к большим временным затратам на исправление ошибок. Так как же мы можем быть более уверенными в успешности релиза?

Этот проверочный список пытается установить баланс между отсутствием формального процесса выпуска ПО и сложностью Release It! (книга Майкла Нейгарда "Release it! Проектирование и дизайн ПО для тех, кому не всё равно"). Проходя по этому списку, отвечайте на вопросы - это поможет вам понять, как вашей команде прийти к успешным релизам. Плюсом вы, возможно, улыбнётесь читая или разглядывая скетчи.

Примечание:

Мы - два разработчика ПО, работающие над системами, которые остро необходимы нашим клиентам и сотрудникам Capital One. Мы создали этот проверочный список, чтобы помочь нашим командам с релизными процессами. Мы понимаем, что он не идеален, и вам, возможно, потребуется изменить его для вашей команды. Но надеемся, что он будет для вас полезен.

Проверочный список для выпуска промышленных приложений с иллюстрациями

В 1735 году Бенджамин Франклин придумал фразу “унция профилактики стоит фунта лечения”, объясняя жителям Филадельфии наилучший способ предотвращения пожаров.

Чтобы помочь предотвратить пожар в вашем релизе, мы разделили этот проверочный список на 3 секции:

Предрелизный список

Мы стараемся следовать двум главным правилам как мы подготавливаем бизнес требования для релиза:

  1. Ограничивайте количество новшеств в релизе, чтобы ограничить риск: старайтесь релизить чаще.
  2. Имейте полный список требований (definition of done) для всех задач:
    • Написаны юнит-тесты с хорошим покрытием кода.
    • Выполнены автоматизированные функциональные тесты для проверки новых возможностей и регрессионного тестирования старых.
    • Проведены тесты удобства использования, доступности.
    • Позаботились о проверке производительности.
    • Просканировали на предмет уязвимостей.
    • Задокументировали технический долг, который мы оставили.

Более того, когда мы готовы к релизу, есть несколько технических моментов, на которые надо обратить внимание:

Мы стараемся всегда иметь план Б и В!

Когда подготавливаешь релиз, люди также важны:

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

Список для проведения релиза (доставки)

Пережив бессчётное количество установок софта вручную, становится ясно, что нет ничего лучше хорошей системы для непрерывной интеграции и доставки (CI/CD). Если у вас её ещё нет, мы рекомендуем обзавестись ей. В противном случае вы можете застрять с ручным руководством и огромной головной болью, которая с ним приходит.

Мы достаточно удачливы, чтобы иметь CI/CD конвейер. Поэтому, когда идёт релиз, мы:

Так как нам важен пользовательский опыт, мы задаём себе также следующие вопросы:

В случае, если релиз оказался неуспешным, мы запускаем план по откату изменений.

Мониторинг - не список

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

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

Стоит сказать, мы также наблюдаем первые 24 часа после релиза. Особенно, если релиз был выкачен во время с низким потоком трафика.

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

Заключение

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

Также может быть вам интересно:
Работа и управлениеУправлениеНастройки
← В Google Pixel и Windows Snipping Tool есть возможность восстановления обрезанных изображений MessageId или как дебажить систему с минимумом проблем →