Функциональные характеристики программного обеспечения для ЭВМ “Программа для тестирования продуктовых гипотез EXPF sigma” (далее - ПО)
0. Термины и определения
Программное обеспечение (ПО) – программная платформа «Программа для тестирования продуктовых гипотез EXPF sigma», предназначенная для управления продуктовой логикой, проведения экспериментов и управления фича-флагами.
Эксперимент – управляемый процесс сравнения различных вариантов поведения продукта или его параметров на части пользовательского трафика с целью оценки влияния изменений на метрики.
A/B-эксперимент – тип эксперимента, при котором пользователи случайным или детерминированным образом распределяются между двумя или более вариантами для их сравнения.
Вариант эксперимента – одна из альтернативных реализаций функциональности, параметров или поведения продукта, участвующая в эксперименте.
Фича-флаг (feature flag) – механизм управления доступностью функциональности или параметров приложения, позволяющий включать, отключать или изменять поведение без повторного релиза.
Параметризованный фича-флаг – фича-флаг, возвращающий значение (числовое, строковое или структурированное), используемое для настройки логики приложения.
Конфигурация – совокупность правил, фича-флагов, параметров и экспериментов, определяющих поведение приложения для пользователя.
Сегмент пользователей (сегмент) – группа пользователей, определяемая набором условий на основе пользовательских атрибутов и параметров среды выполнения.
Пользовательский атрибут – параметр, описывающий пользователя или его контекст (например, платформа, версия приложения, страна, произвольные пользовательские параметры), используемый в логике сегментации и правил.
Правило – условная логика, определяющая применение фича-флага, параметра или варианта эксперимента при выполнении заданных условий.
Приоритет правил – порядок обработки правил, при котором более приоритетные правила имеют преимущество при вычислении итогового значения.
Детерминированное вычисление – механизм вычисления вариантов и значений, при котором одинаковые входные данные всегда приводят к одному и тому же результату.Идентификатор пользователя – уникальный идентификатор, передаваемый в ПО для вычисления вариантов экспериментов и применения конфигураций.
SDK (Software Development Kit) – набор программных библиотек и инструментов для интеграции ПО с клиентскими или серверными приложениями.
API (Application Programming Interface) – программный интерфейс, обеспечивающий взаимодействие внешних систем с функциональностью ПО.
Клиентское приложение – веб- или мобильное приложение, интегрированное с ПО для получения конфигураций, фича-флагов и экспериментальных вариантов.
Серверная интеграция – использование серверных API или SDK для вычисления экспериментов и конфигураций на стороне сервера.
Трафик – совокупность пользовательских запросов или пользователей, участвующих в экспериментах или получающих конфигурации.
Откат изменений – процесс быстрого возврата поведения приложения к предыдущему состоянию путём изменения или отключения фича-флагов и конфигураций.
1. Назначение ПО
ПО представляет собой программную платформу для управления продуктовой логикой, проведения A/B-экспериментов и использования фича-флагов в веб- и мобильных приложениях. ПО предназначено для безопасного внедрения изменений, оценки их влияния на пользовательские метрики и управления доступностью функциональности без повторного релиза приложений.
2. Управление экспериментами
ПО обеспечивает полный цикл управления экспериментами, включая создание, настройку, запуск и завершение экспериментов.
Функциональность включает:
• создание экспериментов различных типов (A/B, параметрические, фича-
флаговые);
• задание вариантов эксперимента и распределение трафика между ними;
• автоматическое закрепление пользователя за экспериментальной группой;
• детерминированное вычисление варианта для пользователя на основе его идентификаторов;
• получение информации о группе и варианте эксперимента через API и SDK;
• одновременное участие пользователя в нескольких экспериментах с учётом приоритетов правил.
3. Фича-флаги и управление конфигурациями
ПО реализует механизм фича-флагов для управления доступностью функциональности и параметров приложения в реальном времени.
Поддерживается:
• логические фича-флаги (включено или выключено);
• параметризованные фича-флаги (числовые, строковые, JSON-значения);
• настройка правил применения флагов на основе условий;
• приоритетная обработка правил при наличии нескольких совпадений;
• централизованное хранение конфигураций и их доставка в клиентские приложения;
• мгновенное изменение поведения приложения без повторной публикации.
4. Сегментация пользователей
ПО предоставляет механизмы сегментации аудитории для точного таргетинга экспериментов и фича-флагов.
Возможности сегментации включают:
• использование стандартных параметров пользователя (страна, платформа, версия приложения, браузер и др.);
• поддержку пользовательских параметров, передаваемых из клиентских систем;
• логические операторы AND и OR для построения сложных условий;
• применение сегментов как в экспериментах, так и в правилах фича-флагов;
• повторное использование сегментов в нескольких конфигурациях.
5. Правила и приоритеты выполнения
Sigma использует иерархическую модель правил для вычисления итогового значения фичи или параметра.
Функциональность включает:
• приоритетное выполнение правил сверху вниз;
• поддержку глобальных, сегментных и экспериментальных правил;
• детерминированный результат при одинаковых входных данных;
• защиту от конфликтов правил за счёт строгой иерархии.
6. Интеграция и программные интерфейсы
ПО предоставляет API и SDK для интеграции с клиентскими и серверными приложениями. Поддерживается:
• SDK для JavaScript, Node.js, Android, iOS и других платформ;
• инициализация клиента с передачей идентификаторов и параметров пользователя;
• получение значений фича-флагов и параметров экспериментов;
• получение списка активных экспериментов для пользователя;
• серверные API для оценки экспериментов и конфигураций;
• единый формат данных для всех платформ.
7. Работа с пользовательскими данными
ПО обеспечивает управление пользовательскими атрибутами, используемыми в логике экспериментов и сегментации.
Функциональность включает:
• передачу и обновление пользовательских параметров из клиентских систем;
• использование параметров в условиях сегментации и правилах;
• поддержку динамически изменяемых пользовательских данных;
• изоляцию вычислений без сохранения персональных данных в клиентской логике.
8. Масштабируемость и отказоустойчивость
ПО спроектировано для работы с высокими нагрузками и большим количеством пользователей.
Обеспечивается:
• обработка большого количества запросов на вычисление фича-флагов и экспериментов;
• стабильная работа при одновременном использовании в нескольких продуктах;
• минимальная задержка при получении конфигураций;
• корректная работа при частичной недоступности внешних систем.
9. Контроль и безопасность изменений
ПО снижает риски при внедрении новых функций и изменений.
Функциональность включает:
• поэтапное включение функциональности на часть аудитории;
• быстрый откат изменений путём отключения фича-флагов;
• изоляцию экспериментальных изменений от основной логики приложения;
• контроль распространения изменений без влияния на всех пользователей.