Transformations take time. People think you can bring in a tech transformation coach, change everybody’s job title, and get them on a quick “sheep dip” of a certified scrum team member. But in organizations, transformation happens incrementally. The good news is that the benefits of change can start to be delivered straight away.
The goal is to find a way to produce the software needed at an affordable cost with high enough quality that it stays useful over time. This is where Behavior-driven development (BDD) and automated testing and quality practices come in.
Go Fast, Start Slow
One challenge to achieving quality at speed is that people want to dive into a project without knowing what to do. Discovery, the first practice of BDD, helps you work in a more effective way and focus on the most critical aspects of your project. Discovery ensures that we don’t start doing something and then say, “Oh, I didn’t think about that,” or, “I misunderstood what I was being asked to do, so I need to throw away what I just did and start again.”
Discovery builds on the Agile techniques of deferring detailed requirements planning until the last responsible moment. Essentially, Discovery lets us slice our user stories into the smallest practical increments, and then study those in detail to figure out how much work each of them requires. We then prioritize, which means we might only work on a few of them.
Discovery Accelerates Quality
Someone might object to this process because if you take the time to break everything down before you start. But in reality, you work in a far more efficient manner after completing these steps. You begin the project by cutting out the stuff you don’t need to do before you waste any time doing it. By prioritizing the most critical features and reaching a shared understanding of them, you maximize the amount of work you don’t need to spend time on.
So, you do less work. More importantly, you do good work.
Customers often come to BDD because they’re looking to automate their testing to release more quickly and with higher quality. But there’s no return on investment. There’s a cost because that level of automation is time-consuming to write, hard to debug, and costly to maintain.
With BDD, on the other hand, you start with Discovery, which means you get to a shared understanding. You prioritize just what you need and no more. You formulate it in business language, meaning to everyone who understands the business domain, and the automation allows you to increase throughput. By applying BDD within an Agile context, you get efficiency, throughput, and quality.