Разработчик создаёт флаг для плавного выката новой фичи. Две недели максимум — думает он. Три месяца спустя флаг всё ещё живёт в кодовой базе. Теперь там две логики работы: старая и новая. Если что-то сломается, непонятно, что именно. Никто не удаляет флаг, потому что вдруг кто-то им пользуется.
Как это решить
Добавляем в каждый флаг срок жизни — дату, после которой он должен исчезнуть. Не данные флага, а сам код его обработки. И конвейер CI останавливает сборку, если срок прошёл.
new_feature_flag:
owner: web-platform
created: 2025-09-08
expires: 2025-11-01
После даты expires случается одно из двух:
• CI выдаёт предупреждение на третий день просрочки
• CI ломает сборку, если просрочка больше недели
Разработчик не может игнорировать проблему, потому что его коммиты просто не пройдут.
Проводите flag burn-down — 15-минутный митинг, где смотрите, какие флаги уже 100% включены в прод.
🐸 Библиотека devops'a
#арсенал_инженера
