Hey?Douglas Murray,
Last month I asked what two questions we needed to answer in an upcoming "BDD for Busy People" class for you to find it valuable. We received 100+ questions. Many of which we will now incorporate into our course material.?
I thought I'd get my colleague Seb Rose, co-author of the BDD Books Trilogy, to write in response to one of the questions asked.?
?
"How do I convince Business Partners/Stakeholders/Product Managers that there is extreme value in BDD despite the start-up costs/learning curve?"?
Changing how we work always incurs a cost, and Behaviour-Driven Development is no different. I hope that we don't initiate a change without a belief that the change itself will deliver some benefit to the business, the employees, the customers, or the wider community. So, the question is "does the benefit expected outweigh the cost predicted?" Or, more prosaically,?"What is the return on investment (ROI)?"?
?
BDD is more than fixing defects early?
?
BDD is an approach to delivering software consisting of three core practices:?Discovery, Formulation, and Automation. Together they promise?to reduce the cost of development, maintenance, and enhancement over the life of a software product.?
?
For many decades, there has been a?belief?that fixing defects early in the development cycle (e.g. during specification) is orders of magnitude cheaper than fixing them later (e.g. during acceptance testing). This belief is founded in a large part on the work of?Barry Boehm?and his Boehm curve [see below]. However, this has been?effectively debunked by?Bossavit?and other research (notably?Menzies?et al).?
?
?
So, if the Boehm curve can no longer be relied upon, what is the ROI of BDD??
?
Discovery?
?
The?Discovery?practice of BDD?brings together multiple perspectives to ensure that there is a shared understanding of the problem that the customer needs solved. On the way to reaching that understanding, it is usual for?known unknowns?to be explored and?unknown unknowns?to be discovered.?
?
The context switching and rework that arises from unexplored or undiscovered unknowns is significant. There are countless research papers that demonstrate context switching's impact on productivity.
?
Less formally,?Joe Wright conducted an experiment?in which a team managed?to increase the amount of time that they spent on planned work from 23% to 56%,?by reducing the amount of rework the team needed to do.?Perhaps surprisingly, he found that "we spent five times more time in meetings...?spending an hour getting feedback was saving a day developing the wrong feature."?
?
Adopting BDD can reduce context switching and increase productivity, contributing to the ROI. This has been?documented by?Gojko?Adzic, who conducted extensive industry research.?
?
Formulation?
?
One of the outcomes of adopting BDD?practice of Formulation?is the creation of documentation written using an unambiguous business terminology (sometimes called the?Ubiquitous Language). This terminology can be used in all artefacts created by the team, including requirements, specifications, code, and tests.?
The benefit is that there is no need for translation when communicating between different roles in the team. Translation is time and error prone, so removing it enhances the?ROI.??
?
Additionally, since the terminology is rooted in the business domain of the business, the documentation should be understandable by everyone involved in the specification and delivery of the product. This delivers the huge benefit of enabling all team members to participate in the review and refinement of the product - another ROI enhancing opportunity.?
?
Automation?
?
There are several tools available (e.g. Cucumber) that allow teams to automatically validate their business-readable documentation against the software product that they are building. This delivers several major benefits:?
-
Reliable,?living documentation?that automatically informs the team when it is incorrect or out-of-date. This is immediately beneficial, but its value grows over time as the team changes and the product evolves.?
-
Automated, business-readable acceptance tests, enabling business stakeholders to directly observe the progress of development, without the expense of generating reports.?
-
Regression tests?that focus on the valuable behaviours that is of interest to the business.?
-
Increased productivity through adopting a?behaviour-driven?approach?of using automated acceptance tests to guide the development of the product.?
?
Conclusion?
?
The ROI of BDD starts?as soon as?a team begins to focus on discovering the?unknowns?that will harm productivity if left unexplored. The reduction in rework and context switching continues with the creation of a shared, unambiguous business language with which to describe and implement the solution. Finally, the ability to?have the documented behaviour automatically validate itself against the software delivers documentation that can be relied upon now and in the future.?
?
There is a cost to adopting BDD, but this is exceeded by the returns in productivity enabled by reduced rework and context switching. Add to this the first truly reliable documentation that your teams have ever?experienced?and the confidence brought by having a suite of business-readable acceptance test to protect against regressions, and you have an investment that can be justified by its tangible returns.?
---
We''ll be launching tickets for our upcoming BDD for Busy People course next week. We''ll be back with details soon.?
Cheers,
Theo
|