Two major reasons waste occurs: When a team doesn’t have a dedicated sprint planning session or when the team does it incorrectly. That’s where behavior-driven development (BDD) comes in. As I’ll discuss here, BDD team benefits are immense.
One of the most important things we do is eliminate waste in an organization. Speeding up feedback loops and employing crisp communication both inside individual teams and externally are absolutely essential on the path to achieve effective collaboration.
Intro to BDD Team Benefits
Behavior-Driven Development (BDD) is an approach used in software delivery to promote effective communication during sprint planning sessions. The idea is to describe software functionality from the end user perspective and make it a starting point for feature development. (It’s noteworthy that Cucumber is the most commonly used tool for using BDD in test automation.)
During BDD sessions, the team dives into “storytelling.” Using Gherkin jargon, team members use plain English keywords such as Given, When, and Then to walk a hypothetical user through the feature flow. Each of these user flows is called a Scenario and can be treated as a test case.
A user story consists of one or more scenarios that describe the behavior of the feature along with other details. These user stories essentially provide acceptance criteria and requirements for feature implementations.
The key point here is to have the whole team actively participating in story generation in order to achieve common understanding for each feature that is getting developed. If this is not how the team operates and requirements are simply dropped on the developers’ shoulders, it is extremely common to see the situation where the vision for the feature is greatly different between developers, testers, product owners, and business units.
Often, some members would be too shy to participate; others would use or try to use the gained authority to further fulfill their egos. Be aware of this.
BDD Team Benefits of Storytelling
Storytelling sessions spark arguments and discussions around the user interface and feature functionality between team members. During these sometimes heated sessions, members of the team discover gray areas in the requirements that needs to be further clarified by the business.
At first, teams being onboarded with the BDD process may show signs of doubt and try to push back. Few people like the change, especially when the existing process was in place for years and “worked.” However, when you ask the team to really give it a try, after an hour or so they start to discover those grey areas we’ve talked about previously.
The team-wide realization arises that without this sprint planning format, certain questions would never be asked. In the old model, not asking these questions led to wasted time during feature implementation — or worse, during a testing phase or a demo. For example, a tester might ask a developer, “Are you sure this is how it should work?” The developer might respond, “I don’t know. I based my development on my interpretation of the requirements.” And so the argument would begin. Imagine if this conversation happened before the feature was implemented instead of after.
This is where the “Three Amigos” approach shines. The idea is that during story generation in sprint planning, team members that represent different roles, such as developers and testers, come together to further update the story’s description and create subtasks needed to accomplish the whole piece.
As a result, estimating workloads and scoping sprint commitments become easy tasks.
Final Words on Behavior-Driven Development
Transforming an organization isn’t an easy task. You need to be able to sell the vision and persist when push-backs occur.
In our experience, injecting BDD as part of sprint planning initiatives bonds the team and removes barriers between individual roles. BDD team benefits include the team starting to have a common understanding of the functionality that is being developed. That by itself lowers the risk of delivering wrong feature implementation saving an organization time and money.