The practice is most common in software development but works for all kinds of product development. One of the advantages of the practice is avoiding "drift". Drift is the tendency of product developers to lose sight of the requirements the product must satisfy. Collaboratively planning and implementing tests first ensures:
- The team understands the requirements.
- The requirements are testable (subject to the certain practical limitations).
- The team can apply the tests to the product continuously throughout development.