Behavior driven development (BDD) can be used to improve communication between testers, developers and the business. For example you can use given-when-then scenarios to develop test scripts and at the same time define the requirements of the system. Nick van Giessel talked about improving communication and collaboration by using BDD at the Agile Testing Day Netherlands 2015 conference.
We get value from software when it is put into production said van Giessel. Agile helps you to get software in production quicker, and to get earlier feedback. If you are developing software but developers and testers are still working in silo’s, you are doing waterfall within agile. You have to break down the walls between different professions and become equal team members to become agile, said van Giessel.
The main reason for doing BDD is to create a common understanding for everybody involved in a team said van Giessel. Behavior driven development can be done in different ways. For instance by doing specification by example, 3amigo sessions, defining acceptation criteria or using given-when-then scenarios as van Giessel explained in his talk. These are all methods which involve all team members and help them to think about the product. You can also use given-when-then scenarios for developing automated test scripts.
Nick van Giessel stated that using the same language helps people to communicate and understand each other better. The same thing is true in teams. For instance if developers and testers use given-when-then scenarios they can describe the behavior of the system. The scenarios can also be used for making test scripts and for defining the requirements of the system.
InfoQ interviewed van Giessel about collaboration in teams and between teams and the business, addressing communication problems and the value that behavior driven development can bring.
InfoQ: You mentioned that speaking the same language is important for people in teams to work together. Can you elaborate on this?
van Giessel: Different expertise like development, testing and business are working together inside a Scrum team. People think in different ways, which is good, but that is often not effective for communication. For working in a team a common understanding is necessary. Behavior driven development describes actual behavior of a customer. Using BDD creates a language that is understandable for everyone. The customer is always the most important person, because he is paying the bills for your IT project.
InfoQ: Can you give example of communication problems that you have seen in agile teams?
van Giessel: I worked within teams where every profession worked in silo’s and didn’t communicate problems throughout the team. Basically it was like working waterfall inside a sprint, so we try to meet commitments every two weeks, but were still using a waterfall method. This resulted in slow and wrong delivery of software, due to late feedback. Problems and wrong implementations are spotted too late and are producing more rework.
InfoQ: What did you do to solve those problems?
van Giessel: We mixed up team members within different teams and introduced BDD precisely. Removing silo’s, inviting everyone to the sessions and discussing our product together before the sprint even started. This took time and effort, but worked out after a few sprints. It’s a mindset where everybody is responsible for the result, we are all team members with an expertise instead of a tester, developer or business analyst.
InfoQ: Can you share your view on behavior driven development? In your opinion, what makes it so valuable?
van Giessel: Basically, BDD is a way to use agile as it supposed to be used. A major value (for me as a software tester) is working on tests and thinking about the business value before the software is build. This reduces stress at the end of a sprint for everyone involved in the team, but especially for the test profession. Communication with others professions make my work easier and most important, it gives me more joy.
Nick van Giessel was one of the speakers in the talented Dutch agile youngsters track of the Agile Testing Day Netherlands 2015 conference. Other talks in this track that have been covered on InfoQ are how a Scrum master helped a team to increase their agility and becoming more transparent helps to manage work.