Перейти к основному содержимому

Definition of Done и release notes

Разработчику QA

Definition of Done (DoD)

DoD (Definition of Done) — согласованный список критериев, при которых инкремент считается готовым: задачу можно закрыть, показать на demo, включить в релиз или отдать пользователям.

DoD отвечает на вопрос: можно ли считать работу завершённой без сюрпризов на prod?

Без DoD:

  • "Done" значит "код написан", но без тестов и stage;
  • release notes пишут в последний час;
  • support узнаёт об изменении от пользователей;
  • rollback — panicked hotfix.

DoD enforced в CI и code review, не только на плакате (FAQ методологии).

См. DoR — старт задачи, Scrum DoD, тестирование.

DoD — для всей команды

QA не "доделывает за dev". DoD описывает общий барьер качества до статуса Done. Если пункт систематически пропускается — меняют процесс или DoD на retro, а не обходят молча.


DoR и DoD

DoRDoD
ВопросМожно начать?Можно закрыть?
ГдеГлава 1Эта глава

Уровни DoD

DoD часто многоуровневый:

УровеньОбластьПримеры критериев
Задача / PRОдна фича или fixCode review, unit tests, lint
Спринт / инкрементНабор задач на demoDeploy на stage, demo пройдено
РелизProdМониторинг, rollback plan, release notes, флаги

Задача может быть Done на уровне PR, но релиз — только когда выполнен релизный DoD.


DoD для веб-фичи

Пример команды (SPA + REST API):

Код и review

  • Код в main через PR с ≥1 approve (2 для auth/PII).
  • Нет known P1/P2 по этой фиче в трекере.
  • AI disclosure в PR, если использовался Copilot.

Тесты и CI

  • Unit и integration тесты зелёные в CI.
  • Покрыты AC из тикета (DoR).
  • E2E на критичный happy path (если есть в проекте).

Среды

  • Задеплоено на stage, QA sign-off или self-check по чек-листу.
  • Миграции БД применимы up/down или документирован one-way.
  • Feature за флагом off в prod, если крупная фича (глава 3).

Документация

  • API (OpenAPI) и wiki обновлены.
  • Release notes черновик, если user-facing.
  • i18n ключи добавлены, нет hardcoded UI strings.

Наблюдаемость

  • Логи и метрики для нового flow (latency, errors).
  • Алерты не сломаны; новые — согласованы с on-call.

DoD для mobile (iOS / Android)

Mobile добавляет store, версии OS, offline и долгий review в сторах.

Общее с web

  • PR, review, CI (unit + UI tests где есть).
  • AC покрыты, stage/testflight/internal track.

Специфика mobile

ПунктiOSAndroid
Мин. версия OSВ AC / Info.plistminSdk в gradle
Store assetsScreenshots если UI менялсяТо же
Push / permissionsТексты permission stringsRuntime permissions
OfflineКэш и сообщения об ошибкеТо же
RollbackFeature flag критичен — store rollback медленныйТо же
AnalyticsEvents в аналитикеТо же

DoD релиза mobile: часто = "код в main + flag off" и отдельный DoD "включено 100% пользователей" после gradual rollout.

Store review ≠ ваш DoD

Одобрение App Store / Google Play — внешний gate. Внутренний DoD выполняется до отправки билда в store.


DoD для bugfix и hotfix

ТипDoD (минимум)
Обычный bugSTR в тикете, regression test, stage verify
Hotfix prodPost-facto review ≤24 ч, RCA ticket, release notes "исправлено"
SecuritySecurity review, нет disclosure details в публичных notes

Инциденты.


Enforcement DoD

DoD на wiki без проверки бесполезен:

МеханизмЧто блокирует
CIMerge без green tests/lint
Branch protectionMerge без approve
WorkflowDone только из "QA Passed"
Release checklistProd deploy без release notes link

Команда на retro: какой пункт DoD чаще всего нарушают — усилить gate или упростить DoD.


Release notes

Release notes — текст о том, что изменилось для пользователей, support и эксплуатации. Это не git log и не список PR.

Аудитории

АудиторияСтильПример содержания
Конечный пользовательБез жаргона, ценность"Теперь можно оплатить картой в один клик"
Support L1Симптомы, обходы"Если кнопка серая — проверьте email"
Admin / DevOpsDowntime, конфиги, флаги"Миграция 042, 5 мин read-only"
API потребителиBreaking changes"Поле total deprecated → amount"

Структура release notes

  1. Версия и дата (и TZ/UTC для глобальных продуктов)
  2. Новое — ценность, не названия классов
  3. Исправлено — что перестало ломаться
  4. Изменено / breaking — миграции, API, поведение
  5. Известные ограничения — честно о багах не P1
  6. Для админов — downtime, feature flags, конфиги

Хранение: wiki, CHANGELOG.md, in-app "Что нового", email — по продукту (техписьмо).


Пример release notes (user-facing)

# ShopFlow 2.14.0 — 2026-06-20

## Новое
- Быстрая оплата сохранённой картой на экране заказа.
- Уведомление о статусе доставки в push (можно отключить в Настройках).

## Исправлено
- Корзина не обнулялась после успешного заказа (тикет #8842).
- Краш приложения при повороте экрана на Android 14.

## Изменено
- Минимальная версия iOS — 16.0 (Apple API для Wallet).

## Известные ограничения
- Быстрая оплата недоступна для B2B-аккаунтов — будет в 2.15.

## Для администраторов
- Feature flag `checkout_one_tap` — по умолчанию **off**; включение по сегментам в LaunchDarkly.
- Миграция БД `20260620_cards` — окно 02:00–02:05 UTC, read-only 2 мин.

Пример release notes (internal / DevOps)

# Release 2.14.0 — internal

## Deploy
- Helm chart app 2.14.0, image tag `v2.14.0`
- Env: `FEATURE_CHECKOUT_ONE_TAP` deprecated → LaunchDarkly flag `checkout_one_tap`

## Rollback
1. Kill switch: LD flag off
2. Helm rollback chart 2.13.x
3. DB migration irreversible — см. runbook RB-042

## Monitoring
- Dashboard: Checkout / OneTap latency p95
- Alert: error rate > 1% 5m → P2 on-call

Кто пишет release notes

РольВклад
PO/PMЦенность, формулировки для пользователя
DevBreaking changes, техдетали, флаги
QAСписок verified fixes, known issues
ТехписРедактура, единый tone of voice
SupportReview на понятность L1

Процесс: черновик в тикете релиза за 2–3 дня до prod, финал после stage sign-off.

ИИ может набросить черновик — факт-чек обязателен.


Release notes и feature flags

Часть фич публикуется выключенной в prod:

  • в release notes: "доступно за флагом checkout_one_tap, поэтапное включение";
  • support знает, почему у части пользователей кнопки нет.

Подробно — Feature flags.


Release notes и удалёнка

Demo live не все видят. Release notes + запись demo — async-канал для EU/RU команды и support.


Связь с change management

Крупный релиз в regulated среде — change request, CAB, окно. Release notes — приложение к change ticket.


Антиpatterns release notes

ПлохоХорошо
"Misc fixes"Конкретные симптомы
Копипаста commit messagesПеревод на язык пользователя
Нет breakingЯвный блок "Изменено"
Notes после prodЧерновик до deploy

DoD для API-only и backend-сервисов

ПунктДетали
OpenAPI / protobufВерсия и changelog
Contract testsConsumer-driven при необходимости
Backward compatibilityDeprecation policy
Rate limitsДокументированы
Stage load smokep95 latency baseline

DoD для data / ML pipeline

  • Schema registry / migration;
  • Data quality checks (null rate, duplicates);
  • Rollback dataset version;
  • PII masking в логах (ИБ);
  • ИИ-модели: bias check по политике продукта.

Release train и cadence

МодельRelease notesDoD релиза
Continuous (daily)Автогeneration + editAutomated + spot check
WeeklyЕдиный doc версииПолный checklist
Bi-weekly sprintПосле demoCAB если нужно

Локализация release notes

Продукт RU + EU:

ЯзыкКанал
RUIn-app, email RU сегмент
ENGlobal changelog
InternalОдин bilingual doc или два linked

Термины — глоссарий.


Release notes для hotfix

Минимальный шаблон P1:

# Hotfix 2.13.1 — 2026-06-16

**Причина:** инцидент INC-442 — 500 на login после deploy 2.13.0

**Исправлено:** null pointer при пустом refresh token

**Действия пользователей:** не требуются, перelogin не нужен

**Для DevOps:** deploy image v2.13.1; flag unchanged

Post-mortem — отдельный doc (инциденты).


Сравнение DoD web и mobile (сводная)

КритерийWebMobile
Deploy speedМинутыStore: дни
RollbackRedeploy / flagFlag critical
E2EBrowserDevice farm
PermissionsN/A oftenOS strings
Version skewOne tabN old app versions

Workshop DoD за 90 минут

  1. Список текущих "done means" от команды.
  2. Группировка: task / sprint / release.
  3. Что автоматизировать в CI первым.
  4. Шаблон release notes — один пример.
  5. Owner wiki + review через 6 недель.

DoD checklist — copy-paste

## Team DoD — Web feature
- PR merged, CI green, ≥1 approve
- AC verified on stage
- Tests cover AC; no P1/P2 open
- API/wiki updated
- Metrics/logs added
- Release notes draft if user-facing
- Feature flag off in prod if gradual rollout

## Team DoD — Mobile
+ TestFlight/Internal track verified
+ min OS documented
+ Store texts if permissions changed

Итоги раздела

DoD — общий барьер "готово к релизу". Release notes — мост к пользователям и support. Для web и mobile DoD различается; mobile опирается на feature flags сильнее из-за store latency.

Feature flags · Итоги · Чек-лист