Agile Tips

#10-TDD Improves Collaboration

May 20, 2024 Scott L. Bain
#10-TDD Improves Collaboration
Agile Tips
More Info
Agile Tips
#10-TDD Improves Collaboration
May 20, 2024
Scott L. Bain

One of the benefits of Test-Driven Development is the way is enhances our ability to collaborate effectively.   This is especially true if you include Acceptance Testing as part of the way of working.  This episode is all about this.

Show Notes Transcript

One of the benefits of Test-Driven Development is the way is enhances our ability to collaborate effectively.   This is especially true if you include Acceptance Testing as part of the way of working.  This episode is all about this.

TDD Improves Collaboration

Products today are almost always developed collaboratively.  This collaboration involves not only the developers that create it but also those who supply the requirements and other details needed to create the desired value. 

The problem is that prioritization and portfolio management are a very different set of skills than the technical disciplines that are used to develop the system.  The individuals on both sides of this divide often look at the requirements from very different, albeit useful, perspectives.  This impedes alignment.

To create what is actually needed requires both a high level of correctness and precision. These are not the same thing, but both are important.  How are they different?

Here is a statement that is correct, but imprecise:  "Pi is a little over 3". This is true and for some purposes may be fine.  But for the rigorous process of turning requirements into behaviors it is almost certainly not good enough.

Here is a statement that is precise, but incorrect: "Pi is 5.1927392837383".  This provides the level of detail that developers may need but would lead them to build the wrong thing entirely.

To provide both, and to bridge the intellectual and experiential gap between agile management and agile development requires deep and extensive collaboration, and this process must include everyone with a meaningful point of view on the product or feature to be created.  There must be a shared language and a framework for interaction that everyone can learn and participate in effectively.  This must require neither technical expertise nor any specific business acumen.

Writing acceptance tests collaboratively is an excellent way to accomplish this if everyone knows how to do it in the same way.  That means that the entire team, from project managers to product owners, business analysts to testers, and developers as well must learn this discipline together.

Also, once acceptance tests are written they can feed into the unit testing process (UTDD) that developers use to drive the creation of the system.  ATDD ensures alignment between management and development, while UTDD ensures that this alignment extends into the products themselves.

TDD contributes massively to collaboration and communication, both within the development team and across the entire organization.  We can show you how to do it all.  The URL is in the transcript.

See my recorded presentation on "TDD in the larger context" for details on this connection:
https://www.projectmanagement.com/videos/831469/Test-Driven-Development-in-the-Larger-Context--TDD---ATDD