The Three Amigos is a collaborative approach used in Behavior-Driven Development (BDD) to make sure everyone on a project has a shared understanding of a feature before any code is written.
It brings together three distinct perspectives to bridge the gap between business requirements and technical implementation.
The three unique perspectives
The "Three Amigos" typically represents three roles (though it can be more than three people):
It brings together three distinct perspectives to bridge the gap between business requirements and technical implementation.
The three unique perspectives
The "Three Amigos" typically represents three roles (though it can be more than three people):
-
The business (Product Owner/Business Analyst):
- Focus: What problem are we solving? What is the value?
- Role: Defines the "What" and provides the requirements.
-
The developer:
- Focus: How will we build this? What are the technical constraints?
- Role: Discusses implementation and technical feasibility.
-
The tester:
- Focus: What could go wrong? What about the edge cases?
- Role: Ensures the feature is verifiable and "breaks" the logic early.
How does it work?
Instead of a long document, the Amigos meet for a short session (often 15–30 minutes) to discuss a specific user story.
- Scenario Mapping: They turn requirements into concrete examples.
- Gherkin Syntax: These examples are often written in the Given/When/Then format.
- The Goal: By the end of the meeting, the team should have a set of clear, unambiguous "Acceptance Criteria" that serve as both the guide for development and the blueprint for automated tests.
Key benefits
- Prevents rework: Issues are caught during the conversation rather than during the testing phase.
- Shared understanding: Eliminates the "that's not what I meant" friction between departments.
- Living documentation: The output (the scenarios) becomes a readable record of how the system is supposed to behave.
- The outcome: The Three Amigos turn a vague idea into a "DoR" (the Definition of Ready), meaning the developers can start coding with total clarity, which significantly reduces the chance of a wrong understanding of the actual requirements.