Условие
CEO: «релизим раз в неделю, фичей вагон». QA: «у нас 200 открытых багов». CPO: «давайте найдём баланс». Как обосновать?
Решение
Зависимость quality ↔ speed
В краткосрочной перспективе они противопоставлены: меньше тестирования = быстрее релиз. В долгосрочной они связаны: накопленные баги тормозят разработку (technical debt).
Метрики
| Quality | Speed |
|---|---|
| Crash-free users | Deploy frequency |
| P99 error rate | Lead time (idea → prod) |
| Open critical bugs | Cycle time (PR → merge) |
| User-reported issues | MTTR (mean time to recovery) |
| NPS | Time per feature |
| Churn from bugs | Change failure rate |
Стадия продукта
| Стадия | Приоритет |
|---|---|
| Pre-PMF | Speed (валидация быстрее) |
| Early growth | Speed + select fixes |
| Scale | Quality + speed parallel |
| Enterprise / regulated | Quality strict, speed via feature flags |
Когда quality дешевле
- B2C, where crash = churn немедленный.
- Payments, медицина, регуляторика — bug = compliance fine.
- High retention dependent products (subscriptions).
- Network effects products (один баг ломает loops).
Когда speed дешевле
- Pre-PMF, exploration mode.
- Internal tools.
- A/B-тесты, которые dispose после.
Frameworks
DORA metrics (DevOps Research):
- Deployment frequency.
- Lead time for changes.
- Mean time to restore (MTTR).
- Change failure rate.
Elite teams: deploy on demand, lead time < 1 day, MTTR < 1 hour, failure rate < 15%.
Feature flags решают часть проблемы
С flags релиз ≠ запуск. Релизим часто (speed), но выкатываем медленно (quality) — gradual rollout.
flag = if (user_in_rollout_bucket): enabled
5% → 25% → 50% → 100% gradual rollout. Каждый шаг — monitor metrics.
SLO budget
Service Level Objective + Error Budget:
SLO: 99.9% uptime → error budget = 0.1% of month = 43 minutes
Если за месяц съели >43 мин downtime — stop releases, фокус на стабильности. Иначе — релизим.
Автоматизация дилеммы quality vs speed.
Подводные камни
- «Все баги починить» — невозможно. Категоризация: критические (немедленно) / средние (sprint) / низкие (backlog).
- Tech debt накапливается, как проценты — не пересмотрено, через 6 мес скорость упадёт.
- Скорость без observability ≠ speed. Без мониторинга баги долго не находятся.
- NPS падает медленно при quality issues — leading indicator не работает; смотреть retention/uninstall.
- Speed-команды любят DORA metrics; quality команды — bug count; нужны обе.
Эталонный ответ
В short-term противопоставлены, в long-term связаны (debt тормозит speed). Зависит от стадии (pre-PMF → speed; scale/regulated → quality). Tools: feature flags для gradual rollout, SLO + error budget для автоматического баланса.