I attended a great talk on Behaviour Driven Development (BDD) by Howard van Rooijen last week at the Agile South Cost group meeting http://bit.ly/dkfahW
BDD is used in Agile software development and essentially gets both technical and non technical people collaborating by using a natural language and as the title suggests describes how something should behave rather than the ins and outs of a particular function.
I have two specific interests around software development projects, one is how to sell them (from a pre sales point of view) and one is how to get the team up and running to deliver them. Understanding more about BDD will help me in both.
Firstly, don’t get me wrong, there are many aspects to winning a clients confidence when it comes to software development projects but BDD is one that you could throw into the pot to create that ‘common language’ from the start. By describing how a clients project will be run and delivered helps your client appreciate the value you will bring.
Simply speaking, there are 3 steps:
Step 1
Describe the concept of a product backlog item (PBI) – for example, as an online retailer; we want to be able to run ‘buy one, get the cheapest item free’ promotions for specific lines and products when a customer buys two or more items.
Step 2
Describe the concept of a sprint backlog item (SBI) – for example; define pricing engine to calculate cheapest item free when the ‘buy one, get the cheapest item free’ is activated against any given product or line.
Step 3
Describe the concept of writing a specification for said SBI but written as behaviour, for example:
- When a user adds 4 items to their basket
- the cheapest item should be identified by the pricing engine
- the price for the cheaper item should be zeroed.
- When the order has been successfully submitted
- the order management system should be reconciled correctly
- the customer’s credit or debit card is charged the correct amount for the order total.
The key word that makes this a behaviour written specification is ‘should’. This approach can then be used right the way through from development to testing. The same behaviour written specification can be interrupted by the test team and client because it’s been described in a ubiquitous language.
To me, it’s logical and from a work load point of view prevents doubling up e.g. the business analyst or project manager on your team doesn’t need to re-interrupt the specification because it’s written in a command language.
Filed under: Agile, Pre Sales | Tagged: Agile Software Development, Agile South Coast, BDD, Behaviour Driven Development, Howard van Rooijen, Pre Sales | Leave a comment »