ATDD

ATDD (Acceptance Test-Driven Development) is a development methodology in which the entire team defines acceptance test criteria before development begins, automates those tests, and then proceeds with implementation.
Differences from TDD
While TDD drives a developer's code design, ATDD aims to align the entire team's understanding of business requirements. Just as TDD follows a "RED → GREEN → Refactor" cycle, ATDD has its own distinct cycle:
- Discuss: The product owner, developers, and QA discuss requirements and agree on acceptance criteria through concrete examples.
- Distill: The agreed-upon criteria are translated into a structured format such as Given-When-Then.
- Develop: Acceptance tests are automated, and implementation begins with the tests in a RED state.
- Demo: Once the tests turn GREEN, the results are demonstrated to stakeholders.
Three Amigos
At the heart of ATDD is the "Three Amigos" session held before implementation. By discussing acceptance criteria from three perspectives — business, development, and testing — ambiguities and misalignments in the specification are resolved early. This is highly effective in preventing rework caused by misunderstandings that only surface after coding has begun.
Barriers to Adoption
Because ATDD affects the entire development process, it cannot be started simply by introducing a tool. The whole team needs to become comfortable with writing acceptance criteria, and active involvement from the product owner is essential. A practical approach is to start with a single user story, experience the benefits firsthand, and then gradually expand the scope.
Related Terms

AI ROI (Return on Investment in AI)
AI ROI is a metric that quantitatively measures the effects obtained — such as operational efficienc

AI Observability
An operational practice of continuously monitoring and visualizing the inputs/outputs, latency, cost

Ambient AI
Ambient AI refers to an AI system that is seamlessly embedded in the user's environment, continuousl

BPO (Business Process Outsourcing)
BPO refers to a form of outsourcing in which a company delegates specific business processes to an e