Operating Model

TO-BE Process Design · All Roles · All Flows · All Ownership

1 Core Principles
Поток имеет владельца

Любая задача в любой момент принадлежит конкретной роли, не человеку. Нет бесхозных задач.

Контракт до кода

Параллельная разработка начинается только после frozen-контракта. FE работает на моках.

Фикс без upstream ≠ done

Branch-fix не считается завершённым, пока MR не принят в Product UI.

2 Team Structure
Alpha
Tech Lead BE ×2 FE UI FE BO QA ×2 PO

Домены: Casino, Payments

Bravo
Tech Lead BE ×2 FE UI FE BO QA ×2 PO

Домены: Sports, Bonuses

Delta planned
Tech Lead BE ×2 FE UI FE BO QA ×2 PO

Домены: Auth/Users, Payments (backup)

Multibrands
FE ×3-4 QA ×2 PO ×2

Isolated stream · Own board · Own planning

Sprint Capacity Split (per platform team)
55% Features
15% Arch/Tech
30% Shield (On-Call)

Дежурный не берёт плановые задачи. Если инцидентов нет — техдолг. Если Shield >70% загружен — эскалация.

3 Roles & Responsibilities
Triage Rotator
Tech Leads Alpha/Bravo/Delta · weekly rotation
Единая точка входа инцидентов. Классифицирует тип, severity, назначает дежурного. ≤30 мин реакция. Не фиксит сам — маршрутизирует.
Product UI Area Owner
Senior FE Product UI
Финальный approval MR в Product UI. Архитектурные решения UI. Замена Head of FE как review bottleneck.
BackOffice Area Owner
Senior FE BackOffice
Финальный approval MR в BackOffice. Аналогичная роль для админки.
Upstream Owner
FE Multibrands · monthly rotation
Трекает MR из брендов → Product UI. Создаёт задачи на propagation. Еженедельный upstream-отчёт. SLA enforcement.
On-Call BE
1 BE per team · weekly rotation
Подхватывает инциденты Stream B по своему домену. Не берёт плановые задачи на неделю дежурства.
On-Call FE
1 FE per team · weekly rotation
Подхватывает UI-инциденты Stream B. Снимается с фич официально через процесс, а не "выдёргивается".

❌ Head of FE — AS-IS

Triage всех инцидентов
Финальный approval каждого MR
Ручной трекинг фиксов по брендам
Медиатор PO ↔ PO
Приоритизация архитектуры
Single point of failure

✅ Head of FE — TO-BE

Стратегия и стандарты качества
Найм и менторинг Area Owners
Эскалации уровня "стоп-релиз"
Участие в архитектурных RFC
Process architect, не dispatcher
Масштабируемая роль
4 Task Classification & Routing
Каждая задача на входе → тип → маршрут
Type Description Route Owner
Platform Feature Плановая фича платформы Stream A → Sprint Backlog PO команды
Hotfix / Incident Продовый баг, деградация Stream B → On-Call Triage Rotator
Multibrand Issue Баг, специфичный для бренда Stream C → Multibrands board PO мультибрендов
Cross-Brand Fix Баг в бренде, воспроизводимый в Product UI Fix → MR Product UI → Propagation Upstream Owner
Architecture Рефакторинг, смена подхода, техдолг RFC → Backlog (architecture) Инициатор → Area Owner

⚠️ Задача валидна только если есть: тип + описание + ожидаемый результат + приоритет. Иначе — вернуть автору.

5 Work Streams
Stream A Planned Work (Features + Tech Debt + Architecture)
Input
PO формирует бэклог
Product Owner
Planning
Sprint Planning, задачи в 70% capacity
Team
Contract
Contract Review → freeze → моки
Tech Lead + FE
Dev
FE на моках + BE на логике (параллельно)
Devs
Review
Кросс-ревью → Area Owner approval
Area Owner
QA
QA команды тестирует
QA
Ship
Release
Stream B Incidents & Hotfixes (Shield)
Trigger
Инцидент → #incidents channel
Bot creates Jira ticket
Triage ≤30min
Type? Severity? Team?
Triage Rotator
Assign
Дежурный BE/FE команды
On-Call Dev
Fix
Fix → MR → Review → QA
On-Call + QA
Check
Affects Product UI?
Yes
MR в Product UI (обязательно)
Upstream flow
Critical
Реакция ≤4h · Fix ASAP
High
Реакция ≤1 день · В спринте
Medium
В текущем спринте
Stream C Multibrands (Isolated)
Input
PO мультибрендов → own board
PO ×2
Dev
FE team develops
FE ×3-4
QA
QA мультибрендов
QA ×2
Check
Bug exists in Product UI?
Yes
→ Cross-Brand Fix flow
Upstream Owner
6 Contract-First Development
API Contract Lifecycle
📝 DRAFT
BE Tech Lead + FE обсуждают
Contract Review meeting
✅ APPROVED
OpenAPI spec коммитится в
/api-contracts repo
🔒 FROZEN
Моки генерируются
Спринт может стартовать
⚡ PARALLEL DEV
FE на моках (MSW/Prism)
BE реализует логику
🔗 INTEGRATION
BE в staging
FE переключается на real API
Contract Rules
SituationAction
BE хочет изменить frozen-контракт Change Request → approval FE + Tech Lead → новая версия
FE хардкодит данные BLOCKED Code review блокирует MR
BE задерживается FE продолжает на моках. Нет "догоняния"
Спринт не может стартовать Пока контракт не frozen и моки не готовы
7 Upstream Flow (Cross-Brand Fixes)
End-to-End Chain
🐛 Баг найден в бренде X
Фикс в репозитории бренда
FE Multibrands
MR в Product UI (обязательно!)
Разработчик, ≤1 рабочий день
QA платформы валидирует
Platform QA
Merge в Product UI
Area Owner, ≤3 рабочих дня
Propagation → все активные бренды
Upstream Owner, ≤5 рабочих дней
Upstream SLA
MR в Product UI создан ≤1 рабочий день
Merge в Product UI ≤3 рабочих дня
Propagation на бренды ≤5 рабочих дней
Upstream Owner Duties
→ Следит за MR до merge в Product UI
→ Создаёт задачи на cherry-pick в бренды
→ Трекает статус в таблице upstream-фиксов
→ Еженедельный отчёт на PO Sync
→ Ротация: помесячно среди FE мультибрендов
Automation (Phase 2+)
→ CI/CD: merge в Product UI → auto Draft MR в бренды
→ Или: Slack notification → команда мультибрендов
8 Ownership Matrix
Backend Domain Ownership
DomainPrimaryBackup
CasinoAlphaBravo
SportsBravoAlpha
PaymentsAlphaDelta
BonusesBravoDelta
Auth / UsersDeltaAlpha
Frontend Ownership
AreaOwnerResponsibility
Product UIArea OwnerFinal MR approval, arch decisions
BackOfficeArea OwnerFinal MR approval, arch decisions
StrategyHead of FEStandards, hiring, escalations
UpstreamUpstream OwnerFix propagation tracking
IncidentsTriage RotatorClassification, routing
9 QA Flow
Principle: QA follows the stream, not the team
Platform Feature
QA команды (Alpha/Bravo/Delta) тестирует в рамках спринта
Hotfix / Incident
QA той команды, где выполняется фикс. При перегрузе — Triage Rotator заимствует QA
Multibrand Issue
QA мультибрендов тестирует фикс в бренде
Cross-Brand Fix (MR)
QA платформы валидирует целостность Product UI после merge
Propagation
QA мультибрендов проверяет корректность cherry-pick в брендах
Hotfix Delivery Owner
Тот, кто принял задачу в triage, отвечает за полный цикл: dev → QA → merge → deploy
10 Code Review & Architecture Decisions
Code Review Flow
Разработчик → MR
Кросс-ревью по горизонтали
BO↔BO · UI↔UI
Area Owner — финальный approval
Not Head of FE!
Merge

Head of FE ревьюит только архитектурные MR и RFC

Architecture RFC Process
Инициатор пишет RFC
1 страница: проблема, предложение, альтернативы, impact
Async Review (3 рабочих дня)
Area Owner + Head of FE
Decision → Architecture Decision Log
Фиксируется в Confluence/Wiki
Задача → бэклог (type: architecture)
15% sprint capacity
11 Synchronization & Meetings
Triage
Daily / Async · 15 min
Triage Rotator + Duty PO
Тип → Severity → Команда
Назначение дежурного
Async через Jira/Slack или слот
PO Sync
Weekly · 30 min
PO Platform + PO Multibrands + Head of FE (opt)
1. Что в прод на этой неделе?
2. Что нужно брендам?
3. Upstream-статус
4. Конфликты приоритетов
Chapter Meeting
Biweekly · 45 min
All FE (or all BE) across teams
Обмен опытом
Обсуждение принятых RFC
Архитектурные решения
Standards alignment
Sprint Ceremonies
Per sprint · Standard
Each platform team separately
Planning · Daily · Review · Retro
Multibrands — свои церемонии
Contract Review
Per feature · 30-60 min
BE Tech Lead + FE UI + FE BO
Обсуждение OpenAPI spec
draft → approved → frozen
Генерация моков
Upstream Report
Weekly (part of PO Sync)
Upstream Owner
Pending MRs в Product UI
Propagation status по брендам
SLA compliance
12 Metrics Dashboard
Operational Metrics (Phase 1)
≥80%
Sprint Say/Do
Committed vs Delivered
<4h
Critical Response
Creation → First Action
<3d
Upstream Lag
Fix → MR in Product UI
↓ trend
Bug Escape Rate
Bugs in prod after release
<1d
MR Review Time
Median time to review
Health Metrics (Phase 2)
→0
Contract Change Rate
Changes after freeze
<70%
Shield Load
If >70% → need more people
100%
Propagation Coverage
Brands with fix within SLA
13 Rollout Plan
PHASE 1
Acute Pain Relief
Sprints 1–2
PHASE 2
Contract-First
Sprints 3–4
PHASE 3
Systematize
Sprints 5–6
PHASE 4
Scale
Sprint 7+
14 Decision Cheat Sheet (Print & Pin)
🎯 Quick Decision Tree
ЗАДАЧА ПОЯВИЛАСЬ
→ Есть тип + описание + результат + приоритет?
Нет → вернуть автору
Да → Triage
TRIAGE (Rotator, ≤30 мин)
→ Platform Feature → Sprint Backlog команды
→ Hotfix/Incident → Дежурный (severity SLA)
→ Multibrand Issue → Борда мультибрендов
→ Cross-Brand Fix → Фикс + MR Product UI + propagation
→ Architecture → RFC → бэклог
РАЗРАБОТКА ФИЧИ
→ Контракт frozen? Нет → Contract Review сначала
→ Да → FE на моках, BE на логике, параллельно
CODE REVIEW
→ MR → Кросс-ревью → Area Owner approval → merge
→ Архитектурный MR → + Head of FE
HOTFIX ГОТОВ
→ Affects Product UI?
Да → MR в Product UI (≤1d) → QA → merge → propagation (≤5d)
Нет → deploy
HEALTH CHECK (каждый ретро)
→ Say/Do ≥80%? Response Time в SLA? Upstream Lag <3d? Contract Changes →0?

Operating Model v1.0 · Designed for Miro transfer · All roles, flows, ownership