Three Amigos
What Is the Three Amigos Pattern?
The three amigos pattern brings three perspectives together before work begins on a story. Each person asks different questions, and together they define exactly what "done" means.
| Role | Perspective | Key Questions |
|---|---|---|
| Product Owner | Business value and user needs | "What problem are we solving? What does success look like?" |
| Developer | Technical implementation | "How will we build this? What are the edge cases? What could go wrong technically?" |
| QA Engineer | Testability and risk | "How will we verify this works? What are the failure modes? What about boundary conditions?" |
How a Three Amigos Session Works
Format
- Duration: 15-20 minutes per story
- When: Before development starts (during sprint planning or backlog refinement)
- Attendees: One developer, one QA engineer, the product owner (or a proxy)
- Output: Refined acceptance criteria that all three agree are specific and testable
Flow
PO describes the story and acceptance criteria (2-3 minutes)
- What is the user trying to do?
- Why is it valuable?
- What are the acceptance criteria?
Developer asks technical clarification questions (3-5 minutes)
- How should the API handle concurrent requests?
- What database changes are needed?
- Are there performance constraints?
- What happens during the migration window?
QA asks "what if" questions (5-7 minutes)
- What if the input is empty?
- What if the network is slow?
- What if the user has no permissions?
- What if this is used on a mobile device?
- What happens with very large data sets?
- What about accessibility?
Group refines acceptance criteria (3-5 minutes)
- Rewrite vague criteria to be specific and testable
- Add missing criteria that the discussion revealed
- Agree on what "done" means for this story
QA leaves with enough information to write test cases before development starts
Before and After: Three Amigos in Action
Example 1: Profile Photo Upload
Before three amigos:
"As a user, I want to upload a profile photo."
QA's questions during the session:
- What file formats are accepted?
- What is the maximum file size?
- What is the minimum resolution?
- Should the system crop to a specific aspect ratio?
- What happens if the upload fails mid-transfer?
- Can users upload animated GIFs?
- What about EXIF data (orientation, location)?
- Is there a content moderation requirement?
- What happens to the existing photo if the new upload fails?
- Can multiple devices upload simultaneously?
After three amigos:
"As a user, I want to upload a profile photo (JPEG, PNG, or WebP, max 5MB, min 100x100px). The system should crop to a square, show a preview before saving, and display a clear error message if the file is too large, wrong format, or too small. Existing photo should be kept if upload fails. EXIF orientation should be respected. Animated GIFs are not supported in v1."
Example 2: Search Feature
Before three amigos:
"As a user, I want to search for products."
Developer's questions:
- Full-text search or exact match?
- Do we search product name, description, or both?
- Do we need pagination?
- What about search performance with 100K products?
QA's questions:
- What happens with an empty search?
- What about special characters or SQL injection?
- How fast should results appear? Is there a debounce?
- What if there are no results?
- Do search terms persist across page navigation?
- Is search history saved?
- What about fuzzy matching (typos)?
After three amigos:
"As a user, I want to search products by name or description with full-text search. Results appear within 500ms, paginated at 20 per page. Empty search shows all products. No results shows 'No products found' message with suggested categories. Search input has 300ms debounce. Special characters are escaped (no injection). Fuzzy matching is out of scope for v1."
QA's Unique Contribution
The QA engineer's primary contribution is asking questions nobody else asks. Developers think about how to build it. POs think about what to build. QA thinks about how it could break.
Question Categories for QA
| Category | Example Questions |
|---|---|
| Boundary values | What happens at 0, 1, max, max+1? |
| Error handling | What happens when the API returns 500? When the network is down? |
| State transitions | What happens if the user navigates away mid-action? |
| Concurrency | What if two users modify the same record simultaneously? |
| Security | What if someone tries to access another user's data? |
| Performance | What happens with 10,000 items? With 100 concurrent users? |
| Accessibility | Can this be used with keyboard only? With a screen reader? |
| Backward compatibility | Does this break existing API consumers? |
| Data integrity | What happens to existing data during migration? |
| User context | What about mobile? Slow network? Offline? |
Building a Question Checklist
Over time, build a personal checklist of "what if" questions. After each three amigos session, add any questions that revealed missing requirements. This checklist becomes your most valuable QA tool.
Running Effective Three Amigos Sessions
Tips for Success
- Keep it focused: One story per session. If the story is too big, split it first.
- Time-box strictly: 15-20 minutes per story. If you need more time, the story is too complex.
- Write things down: Update the acceptance criteria in Jira during the session. Do not rely on memory.
- It is not a design review: Focus on what the behavior should be, not how to implement it.
- Everyone contributes: If the QA engineer is silent, the session has failed.
- Follow up: If questions cannot be answered in the session, create action items.
When Three Amigos Is Not Needed
Not every story needs a three amigos session. Skip it for:
- Bug fixes with clear reproduction steps
- Minor UI tweaks with no behavioral changes
- Infrastructure tasks that do not affect user behavior
- Stories that are extremely well-defined already
Focus three amigos on stories that are:
- New features with unclear edge cases
- Changes to existing features (risk of regression)
- Features involving multiple systems or teams
- Features with security, payment, or compliance implications
Measuring Three Amigos Effectiveness
| Metric | Without Three Amigos | With Three Amigos |
|---|---|---|
| Acceptance criteria changes during sprint | 40% of stories | < 10% of stories |
| Bugs from undefined behavior | Frequent | Rare |
| Stories sent back to PO for clarification | 20% of stories | < 5% of stories |
| Test cases written before dev starts | 0% | 80% |
| Sprint planning time | Shorter (but issues emerge later) | Slightly longer (but fewer surprises) |
Hands-On Exercise
- Organize a three amigos session for one story in your upcoming sprint
- Prepare 10 "what if" questions before the session using the question categories above
- Track how many acceptance criteria change during the session
- After the session, write test cases immediately from the refined criteria
- Compare: did the story have fewer bugs during testing than similar stories without a three amigos session?
- Build your personal "what if" question checklist and add to it after each session