Включает ли критерии приемки Definition of Done?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Включают ли критерии приёмки Definition of Done
Это важный и частый вопрос. Ответ: отчасти, но это разные вещи с пересечением.
Определения
Acceptance Criteria (AC): Условия, которые user story должна выполнить, чтобы считаться готовой функционально.
Definition of Done (DoD): Чек-лист всех качественных требований (тесты, документация, review), которые должны быть выполнены для любой работы.
Различие
AC → Функциональность (WHAT) DoD → Качество (HOW)
Пример: User Story "Фильтрация по цене"
AC (Функциональность):
- Given: На странице товаров
- When: Устанавливаю фильтр от 100 до 500
- Then: Появляются только товары в диапазоне
- And: Фильтр работает за < 1 сек
Отвечает на вопрос: "Это выполняет требование?"
DoD (Качество):
- Code written and reviewed (code review passed)
- Unit tests written (coverage > 80%)
- Integration tests passed
- Manual testing done
- No console errors
- Works on mobile and desktop
- Documentation updated
- Security review done (if needed)
- Performance ok (< 1 sec)
Отвечает на вопрос: "Это качественно сделано?"
Таблица сравнения
| Аспект | AC | DoD |
|---|---|---|
| Что | Требование | Качество |
| Уровень | Функциональность | Процесс |
| Специфично | Для каждой story | Одно для всех |
| Кто пишет | PO / BA | Team |
| Когда | Перед спринтом | Постоянно |
| Проверяет | QA, клиент | Разработчик, team |
| Если не выполнено | Story не ready | Story не done |
Пересечения
Где они пересекаются:
- Performance требование может быть и в AC и в DoD
AC: "Загрузка < 2 сек"
DoD: "Performance tested, нет regression"
- Security может быть в обоих
AC: "Пароль зашифрован"
DoD: "Security review пройден"
- Testing
AC: "Юзер может искать" (функциональное тестирование)
DoD: "Unit tests > 80%" (автоматизированное тестирование)
Практический пример
Story: "Как клиент, я могу сохранить товар в избранное"
AC (Функциональность - что должно работать):
Given: Я на странице товара
When: Я кликаю кнопку "Add to Favorites"
Then: Товар добавляется в избранное
And: Иконка кнопки меняется на заполненную
And: В личном кабинете раздел "Favorites" обновляется
And: Если товар уже в избранном, кнопка удаляет его
Вопрос QA: "Это соответствует AC?"
DoD (Качество - как должно быть):
☐ Code:
- Code written
- Code reviewed (2 approvals)
- No linting errors
- No code duplication
☐ Testing:
- Unit tests written (API endpoints)
- Integration tests (DB interactions)
- Manual testing done
- Edge cases tested (already favorited, network error)
- Browser compatibility tested
- Mobile responsive tested
☐ Documentation:
- API docs updated
- Code comments for complex logic
- Test coverage >= 85%
☐ Performance:
- Add to favorites < 500ms
- No N+1 queries
- Database indexes optimized
☐ Security:
- User auth checked
- User can't add others favorites
- Input validation
☐ Deployment:
- Migrations created
- DB schema changed properly
- No data loss
- Backward compatible
Вопрос Team: "Это quality code?"
Включает ли DoD AC?
Ответ: Нет, но AC должны быть выполнены перед DoD.
Процесс:
1. Разработчик реализует feature
2. Проверяет, что выполнены AC (функциональность)
✓ Если не выполнены → Back to Dev
✓ Если выполнены → идёт дальше
3. Проверяет, что выполнены DoD (качество)
✓ Unit tests ✓ Code review ✓ Performance
✓ Если не выполнены → Back to Dev
✓ Если выполнены → Story DONE
4. QA тестирует (проверяет ещё раз AC и качество)
5. Done!
Диаграмма:
┌─────────────────────────────────────────────┐
│ User Story / Task │
├─────────────────────────────────────────────┤
│ ┌───────────────────────────────────────┐ │
│ │ Acceptance Criteria (что должно │ │
│ │ работать функционально) │ │
│ │ │ │
│ │ Given / When / Then │ │
│ └───────────────────────────────────────┘ │
│ ↓ │
│ ┌───────────────────────────────────────┐ │
│ │ Definition of Done (как качественно) │ │
│ │ │ │
│ │ Code + Tests + Review + Docs + Perf │ │
│ └───────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
Когда AC входит в DoD
В некоторых случаях AC пересекаются с DoD:
1. Performance AC
АС: "API ответит за < 200ms"
Это также требование для DoD (testing performance)
2. Security AC
АС: "Данные шифруются"
Это также требование для DoD (security review)
3. Compatibility AC
АС: "Работает на мобильной версии"
Это также требование для DoD (testing compatibility)
Типичные ошибки
Ошибка 1: Путаница между AC и DoD
❌ "AC это то же, что DoD"
✅ AC = функциональность, DoD = качество
Ошибка 2: AC забывают про DoD
❌ "AC выполнены, пускаем в продакшен" (без тестов!)
✅ AC выполнены → DoD выполнены → в продакшен
Ошибка 3: DoD требует выполнять AC дважды
❌ DoD = "Проверить AC" (дублирование работы)
✅ DoD = "Тесты, документация, review"
Ошибка 4: DoD слишком легкий
❌ DoD = только "Code written"
✅ DoD = Code + Tests + Review + Docs + Performance
Правильный процесс
Story Writing:
1. BA пишет User Story
2. PO и BA определяют Acceptance Criteria
3. Team определяет Definition of Done
Development:
1. Dev пишет код
2. Dev проверяет AC (выполнены ли требования?)
3. Dev проверяет DoD (тесты, документация, review)
4. QA проверяет оба
5. Story DONE
Вывод
AC и DoD НЕ одно и то же:
- AC = Функциональные требования (WHAT)
- DoD = Требования к качеству (HOW)
AC включены в процесс DoD:
- First: AC должны быть выполнены
- Then: DoD требования (тесты, review, docs)
Оба нужны:
- Без AC не знаешь, что делать
- Без DoD получишь плохое качество
Порядок: АС первые (функциональность) → DoD (качество) → DONE