Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is the difference between Acceptance Test--Driven Planning and Acceptance Test--Driven Development? Are they the same?

share|improve this question

Acceptance Test-Driven Planning is an extension of XP Planning. It involves the following steps:

  1. Getting our story straight
  2. Show and tell
  3. Retrospective
  4. (optional) Technical Retrospective
  5. Iteration Planning Workshop
  6. (optional) Big, up-front thinking
  7. Cutting the iteration.

This planning process is supposed to take up about 10% of the time, the development effort 90%.

Acceptance Test-Driven Development is an extension of Test-Driven Development. Note that in the diagram below, traditional Test-Driven Development is referred to as Unit Test-Driven Development (UTDD)

alt text

share|improve this answer
I treat unit test to acceptance test as merely a matter of scale, but +1 for the cool diagram! – Steven A. Lowe Jan 3 '11 at 6:50
Why is Test and Driven are usually separated by using two dashes rather one? Shouldn't it be "Acceptance-Test-Driven Planning"? – Behrang Sep 19 '11 at 7:15
+1 for picture (although not drawn by hand) – Simon Mar 21 '12 at 13:49
up vote 1 down vote accepted

Answering my own question (based on some research):

In "The RSpec Book" David Chelimsky et. al. says that Acceptance Test--Driven Planning is one of three core practices of Behavior Driven Development (BDD). They describe Acceptance Test--Driven Planning (ATDP) as an extension of Acceptance Test--Driven Development (ATDD) and say that in ATDP acceptance tests are agreed on during or before an interation planing meeting. This helps the development team to better understand the requirements and estimate the work required for an implementation. In contrast, the general practice of ATDD simply means collaborating with customers on acceptance tests before developers write code and doesn't specify whether tests should be written before or after an iteration planning meeting.

In the paper "Acceptance Test Driven Planning" (published in the book "Extreme Programming and Agile Methods") Richard Watt and David Leigh-Fellows emphasize the importance of "Getting Our Stories Straight" as a key phase of the development process. They describe marathon planning sessions where the full development team sought to clarify requirements from the customer before deciding on a list of implementation tasks and estimating time required. To improve the process, they assigned a developer and QA engineer to work with a customer to write acceptance tests before the full team met for a planning session. Creating acceptance tests at this early stage encourages the customer to express the requirements clearly; it gives the developers a better understanding of the requirements and helps them to know when their work is done; and makes it easier to break down tasks and estimate work effort.

ATDP means the development team considers acceptance tests as well as user stories before implementation tasks are identified and assigned. In practice, ATDP means acceptance tests become the focal point of of all planning and development activities.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.