Feature flag — переключатель функции
Настройка, которая включает или выключает функцию без новой выкладки. Позволяет показать новое части пользователей и быстро откатиться.
Также встречается как: фича-флаг, feature toggle
Коротко. Feature flag — условие в коде, которое включает функцию для всех, для части пользователей или ни для кого. Управляется настройкой, а не новой версией продукта.
Зачем это нужно
Выкладывать незаконченное безопасно. Код уезжает на сервер выключенным и не мешает никому, пока вы его не включите.
Показывать новое постепенно. Сначала себе, потом десяти лояльным клиентам, потом всем. Если что-то пойдёт не так, пострадают десять человек, а не вся база.
Откатываться мгновенно. Выключить флаг — секунды. Выкатить исправление — в лучшем случае минуты.
Сравнивать варианты. Флаг — основа простого A/B-теста: половина пользователей видит одно, половина другое, дальше смотрим на когорты.
Зачем фаундеру
Это способ снизить цену ошибки, а на ранней стадии ошибки происходят постоянно. Возможность выпустить сырое на узкую группу и мгновенно свернуть радикально меняет темп: страшно становится не выкладывать, а не проверять.
Где ошибаются
Не убирают старые флаги. Через год в коде десятки переключателей, и никто не помнит, что включено. Флаг — временная конструкция: выкатили, убедились, удалили.
Прячут за флагом слишком крупные куски. Если под флагом полпродукта, две ветки поведения начинают жить своей жизнью и ломаться независимо.
Управляют флагами через выкладку. Тогда теряется весь смысл: переключение должно быть настройкой, а не релизом.
Разобрать это на своём проекте
Мы доводим идеи фаундеров до работающего MVP за долю в компании. Расскажите про свою — посмотрим на цифры вместе.