Three Amigos
Updated Jul 2026
Что такое паттерн Three Amigos?
Паттерн Three Amigos объединяет три перспективы до начала работы над историей. Каждый человек задаёт разные вопросы, и вместе они определяют точно, что означает «сделано».
| Роль | Перспектива | Ключевые вопросы |
|---|---|---|
| Владелец продукта | Бизнес-ценность и потребности пользователя | «Какую проблему мы решаем? Как выглядит успех?» |
| Разработчик | Техническая реализация | «Как мы это построим? Какие есть граничные случаи? Что может пойти не так технически?» |
| QA-инженер | Тестируемость и риски | «Как мы проверим, что это работает? Каковы режимы отказа? Что с граничными условиями?» |
Как проходит сессия Three Amigos
Формат
- Длительность: 15-20 минут на историю
- Когда: до начала разработки (во время планирования спринта или уточнения бэклога)
- Участники: один разработчик, один QA-инженер, владелец продукта (или его представитель)
- Результат: уточнённые критерии приёмки, с которыми все трое согласны, конкретные и тестируемые
Порядок проведения
PO описывает историю и критерии приёмки (2-3 минуты)
- Что пользователь пытается сделать?
- Почему это ценно?
- Каковы критерии приёмки?
Разработчик задаёт технические уточняющие вопросы (3-5 минут)
- Как API должен обрабатывать параллельные запросы?
- Какие изменения базы данных необходимы?
- Есть ли ограничения по производительности?
- Что происходит во время окна миграции?
QA задаёт вопросы «что если» (5-7 минут)
- Что если ввод пустой?
- Что если сеть медленная?
- Что если у пользователя нет прав?
- Что если это используется на мобильном устройстве?
- Что происходит с очень большими наборами данных?
- Что с доступностью?
Группа уточняет критерии приёмки (3-5 минут)
- Переписать размытые критерии на конкретные и тестируемые
- Добавить недостающие критерии, выявленные в ходе обсуждения
- Согласовать, что означает «сделано» для этой истории
QA уходит с достаточной информацией для написания тест-кейсов до начала разработки
До и после: Three Amigos в действии
Пример 1: Загрузка фото профиля
До three amigos:
«Как пользователь, я хочу загрузить фото профиля.»
Вопросы QA во время сессии:
- Какие форматы файлов принимаются?
- Каков максимальный размер файла?
- Каково минимальное разрешение?
- Должна ли система обрезать до определённого соотношения сторон?
- Что происходит, если загрузка прерывается на середине?
- Могут ли пользователи загружать анимированные GIF?
- Что с EXIF-данными (ориентация, местоположение)?
- Есть ли требование модерации контента?
- Что происходит с существующим фото, если новая загрузка не удалась?
- Могут ли несколько устройств загружать одновременно?
После three amigos:
«Как пользователь, я хочу загрузить фото профиля (JPEG, PNG или WebP, макс 5МБ, мин 100x100px). Система должна обрезать до квадрата, показать превью перед сохранением и отобразить понятное сообщение об ошибке, если файл слишком большой, неправильного формата или слишком маленький. Существующее фото должно сохраняться при сбое загрузки. EXIF-ориентация должна учитываться. Анимированные GIF не поддерживаются в v1.»
Пример 2: Функция поиска
До three amigos:
«Как пользователь, я хочу искать товары.»
Вопросы разработчика:
- Полнотекстовый поиск или точное совпадение?
- Ищем по названию товара, описанию или по обоим?
- Нужна ли пагинация?
- Что с производительностью при 100K товаров?
Вопросы QA:
- Что происходит при пустом поиске?
- Что со специальными символами или SQL-инъекцией?
- Как быстро должны появляться результаты? Есть ли debounce?
- Что если результатов нет?
- Сохраняются ли поисковые запросы при навигации по страницам?
- Сохраняется ли история поиска?
- Что с нечётким поиском (опечатки)?
После three amigos:
«Как пользователь, я хочу искать товары по названию или описанию с полнотекстовым поиском. Результаты появляются в течение 500мс, пагинация по 20 на страницу. Пустой поиск показывает все товары. При отсутствии результатов показывается сообщение "Товары не найдены" с предложенными категориями. Поисковый ввод имеет debounce 300мс. Специальные символы экранируются (без инъекций). Нечёткий поиск -- вне скоупа для v1.»
Уникальный вклад QA
Основной вклад QA-инженера -- задавать вопросы, которые никто другой не задаёт. Разработчики думают о том, как это построить. PO думают о том, что построить. QA думает о том, как это может сломаться.
Категории вопросов для QA
| Категория | Примеры вопросов |
|---|---|
| Граничные значения | Что происходит при 0, 1, max, max+1? |
| Обработка ошибок | Что происходит, когда API возвращает 500? Когда сеть недоступна? |
| Переходы состояний | Что происходит, если пользователь уходит со страницы в середине действия? |
| Конкурентность | Что если два пользователя одновременно модифицируют одну запись? |
| Безопасность | Что если кто-то пытается получить доступ к данным другого пользователя? |
| Производительность | Что происходит с 10 000 элементов? Со 100 одновременными пользователями? |
| Доступность | Можно ли это использовать только клавиатурой? Со скринридером? |
| Обратная совместимость | Ломает ли это существующих потребителей API? |
| Целостность данных | Что происходит с существующими данными при миграции? |
| Контекст пользователя | Что на мобильном? При медленной сети? Офлайн? |
Создание чек-листа вопросов
Со временем создайте персональный чек-лист вопросов «что если». После каждой сессии three amigos добавляйте вопросы, которые выявили недостающие требования. Этот чек-лист станет вашим самым ценным QA-инструментом.
Проведение эффективных сессий Three Amigos
Советы для успеха
- Сохраняйте фокус: одна история на сессию. Если история слишком большая, сначала разделите её.
- Строго ограничивайте время: 15-20 минут на историю. Если нужно больше времени, история слишком сложная.
- Записывайте: обновляйте критерии приёмки в Jira во время сессии. Не полагайтесь на память.
- Это не ревью дизайна: фокусируйтесь на том, каким должно быть поведение, а не как реализовывать.
- Все вносят вклад: если QA-инженер молчит, сессия провалилась.
- Последующие действия: если на вопросы нельзя ответить на сессии, создайте элементы действий.
Когда Three Amigos не нужен
Не каждая история нуждается в сессии Three Amigos. Пропустите для:
- Исправлений багов с чёткими шагами воспроизведения
- Незначительных UI-правок без изменений поведения
- Инфраструктурных задач, не влияющих на поведение пользователя
- Историй, которые уже очень хорошо определены
Фокусируйте Three Amigos на историях, которые:
- Новые фичи с неясными граничными случаями
- Изменения существующих фич (риск регрессии)
- Фичи, затрагивающие несколько систем или команд
- Фичи с последствиями для безопасности, оплаты или комплаенса
Измерение эффективности Three Amigos
| Метрика | Без Three Amigos | С Three Amigos |
|---|---|---|
| Изменения критериев приёмки во время спринта | 40% историй | < 10% историй |
| Баги из неопределённого поведения | Часто | Редко |
| Истории, возвращённые PO на уточнение | 20% историй | < 5% историй |
| Тест-кейсы, написанные до начала разработки | 0% | 80% |
| Время планирования спринта | Короче (но проблемы возникают позже) | Чуть длиннее (но меньше сюрпризов) |
Практическое упражнение
- Организуйте сессию Three Amigos для одной истории предстоящего спринта
- Подготовьте 10 вопросов «что если» до сессии, используя категории вопросов выше
- Отследите, сколько критериев приёмки изменились во время сессии
- После сессии немедленно напишите тест-кейсы из уточнённых критериев
- Сравните: было ли в истории меньше багов при тестировании, чем в аналогичных историях без сессии Three Amigos?
- Создайте свой персональный чек-лист вопросов «что если» и дополняйте его после каждой сессии