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 immediately.
The goal is to find a way to produce the software needed at an affordable cost with high enough quality to stay useful over time. This is where Behavior-driven development (BDD), 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 more effectively 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 determine how much work each requires. We then prioritize, meaning we might only work on a few.
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 far more efficiently 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, you maximize the 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 want 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, telling 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.