Behaviour Driven Development (BDD) is a well-known approach for the development of software that has been rapidly adopted by many software development teams across the globe.
By using examples of how a system should behave we can find the value and intent of that system, focusing on finding uncertainty and risk to avoid mistakes early on and when the software evolves. Conceived by Dan North, and built upon the staples of agile principles, BDD can bridge the gap between stakeholder, tester and developer by using a clear and plain language to describe the wants and needs of the business as working software.
BDD gives us a way of getting an idea of an outcome you desire and channelling that into a production ready software system making or saving you money. At Wisereach we are implementing aspects of BDD throughout the development lifecycle of an online large-scale customer portal.
The approach of BDD allows us to break down vast and complex business requirements into clear and concise user stories in a language that is both common to those requesting features, and those developing and testing them.
We have found that thought process of the entire project team has shifted to a new way of thinking and joint understanding of why a feature is important and how much of it is enough in order to bring value to the business now. This has removed the need and notion for fully specified, completely detailed up front specification documents, leading the team to have time-saving, relevant, constructive and genuine collaborative discussions to determine and understand the requirements.
BDD places heavy emphasis on business value, resulting in our stakeholders having to justify priority by showing the concrete value of a given feature. This is beneficial in allowing our developers to embrace the priorities of the business and understand the thinking behind them.
BDD is keeping us focussed on the needs of the user and expected behaviour to include only the most useful features instead of jumping ahead and getting caught up in the underlying implementation details. BDD is helping us embrace the concept of evolving product understanding, shaping our design to evolve and keep pace with the changing needs and priorities of the business as the portal becomes more popular and more widely adopted.
With BDD at the core of our approach, we have been able to introduce regular delivery schedules, discuss, collaborate, develop, test and go live on-time, on expectation and on budget with value add requirements tailored to the needs and wants of the business right now.
We have seen many development projects falter simply by spending large amounts of the project budget and time on attempting to fully specify the requirements without discussion of need, prioritisation and value as the project grows and evolves. This greatly limits the joint understanding of what a requirement is, why it is being requested and what value it brings given the current needs of the business and ultimately end up in a product not entirely fit for purpose.
We see BDD as a pioneering step forward in the world of software development and we highly recommend that you apply BDD principles with our help to your projects in order get you to where you need to be, not where you think you should be.
If you are interested in learning more about BDD, then take a read of Dan North’s own introduction at http://dannorth.net/introducing-bdd/ and then talk to us about how we can help you make BDD work for you.