What is the difference between Acceptance Test--Driven Planning and Acceptance Test--Driven Development? Are they the same?
Acceptance Test-Driven Planning is an extension of XP Planning. It involves the following steps:
- Getting our story straight
- Show and tell
- (optional) Technical Retrospective
- Iteration Planning Workshop
- (optional) Big, up-front thinking
- 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)
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.