Feature Toggles, или Как выкатывать фичи без релизаDevOps и эксплуатация
Отдел маркетинга интернет-магазина заказал новую фичу - персонализированные рекомендации товаров для клиентов. Допустим, на разработку и внедрение полностью работающей версии требуется месяц. На этот месяц запланировано 8 релизов.
Что делать?
- Выкатить последним релизом весь функционал и огрести проблемы запуска сразу?
- Или выкатывать постепенно и «пугать» пользователя недоделанным функционалом?
- А если не "взлетело"?
- Как быть с мобильными приложениями, которым требуются недели, чтобы быть установленными у всех клиентов?
- Что делать с совместимостью API?
- Как измерить, что пользователям фича понравилась, и они стали покупать больше?
- Как программистам поддерживать код со всей этой комбинаторикой?
Все эти вопросы неизбежно возникают при разработке любого большого продукта, и у каждой команды есть свои решения. Мы рассмотрим разные способы решения этих вопросов, такие как «в лоб», feature branch, feature toggle, сравним их отличия и особенности внедрения.