When to embrace Behaviour Driven Development?Ranjith Tharayil
schedule 1 year agoSold Out!
Behaviour Driven Development (BDD) is a collaborative and disciplined technique to help us build the right product. In the last decade BDD has had her own bit of glory and criticism. Many teams in the recent past have reaped benefits from this technical practice, while some teams complain that are yet to find any value. This talk focuses on answering two questions; What are the ideal conditions when teams should adopt it? How to adopt it the right way ?
In this talk we come up with a BDD adoption matrix to help us answer the above questions. We also assert that for successful product development it is crucial to bridge the gap between the problem space and solution space, each of which has its own set of complexities. We conclude that Behavior Driven Development can be one of the effective techniques to bridge this gap especially if the problem space is complex. In case the problem space is simple it might be an over kill and teams might not find real value practicing BDD. We also observe that teams whose problem space is simple can continue to document scenarios and automate acceptance testing but they need not spend elaborate time and effort towards discussing and debating scenarios.
Preface about the talk
Behaviour driven development has been a buzz word in the recent years and many teams are adopting it. The core of BDD is the collaboration angle that enables teams to build the right product. As a side effect BDD gives you a very essential output, which is an automated acceptance test suite. BDD team members work together in identifying different scenarios elaborated in the form of examples. High performing teams ensure through working agreements to only pull those features in which scenarios are well defined. These scenarios define the acceptance criteria of the feature. The scenario identification process involves full team participation and in these meeting its essential that the three amigos i.e. the entire development team, QA engineers and product owner should participate. Along with the three amigos any other members who can constructively contribute in scenario identification are also welcomed.
During these interactions technology facing members get a better understanding of business and vice-versa. It has also been observed that identifying and discussing scenarios helps the team in analysing and studying the feature in much detail. Many teams benefit from this practice as it helps them shape their product , saying so few teams are yet to find value in investing time and effort towards these meetings and ceremonies . One should keep in mind that for BDD to be effective we require full team participation.
In this talk I am making an assumption that these teams who are not finding much value in adopting BDD, were practicing it in fullest of its spirits and not just documenting scenarios for creating an automated test suite. This talk discuss on how to effectively adopt it ,the right way based on problem space complexity of the feature .
Built-in Quality through Vertical Slicing of User Story, BDD scenario writing and Test PyramidVinay Krishna
schedule 1 year agoSold Out!
Developing product with Built-in quality is always desired outcome. Organizations follow various strategies for the same such as horizontal slicing, acceptance criteria and end-to-end automation testing. In this session I'm going to explain how it can be achieved through:
Vertical slicing is a technique used to develop software by driving a thin vertical slice (cross-sectional slice through the layers), which is functionally coherent and demonstrable, then progressively widening it with consecutive slices
BDD stands for Behavior Driven Development and BAs, Dev and testers collaborate and write scenarios to cover expected behavior of application
Test Pyramid highlights that we should have more low-level tests (such unit tests) than high-level tests (end-to-end tests).
I have used them effectively while coaching various teams. I'm going to share my experience supporting real time examples through this session.
Adapting BDD for software maintenance projects using the “dEep” model.Ranjith Tharayil
schedule 1 year agoSold Out!
Behaviour driven development has been a tried and tested technique to help us build the right product. In the recent years many teams who are in green field development projects are adopting it and finding great success. The core of BDD is the collaboration angle that enables teams to build the right product. BDD team members work together in identifying different scenarios and elaborated them in the form of examples. During these discussions, technology facing members get a better understanding of business and vice-versa. It has also been observed that identifying, discussing and debating scenarios helps the team in analysing and studying the feature in much detail. Many teams benefit from this practice as it aids them shape their product.
But when it comes to teams whose primary responsibility is to maintain previously built software system, BDD as a technique is something that they really don’t know how to utilize to make the best of it. This is because BDD’s primary focus is on driving the development of new features / stories, in case of enhancement projects this driving the development phase was history. Also we are considering a context in which these projects run-on lots of legacy code. This article discusses on how software maintenance projects can benefit from this second generation agile methodology. As you would all agree we will not able to use BDD as it is directly, we need to customize according to our needs to get the best of it. We discuss one such customisations called the “dEep” model.
The “dEep” is a model that I have come up with for software maintenance projects teams that I coach to get the best of BDD.
“dEep” model is just a template frame work for adapting BDD for software maintenance projects. It may need customization as per specific project context.
By studying various Software enhancement projects I have categories the type of work into 4 different types
- Defects, “d”.
- Complex (problem space) enhancements, “E”.
- Simple (problem space) enhancements, “e”.
- Urgent production issues, “p”.
Hence the word “dEep”
The team during pre-grooming classifies work items into E, e and d. The classification of enhancements into Complex enhancements “E” and simple enhancements “e” is the trickiest aspect here. It is based on the complexity in problem space and not the size of the enhancements. This means that there could be a work item with was estimated as “XL” (T-shirt sizing ) could be classified as simple enhancements “e” and another work item estimated as “L” could be classified Complex enhancements, “E” . The reason is because here we look into the complexity of problem space and not solution space. For more reading on problem space complexity and effects on it during BDD cycle kindly read my paper - Tharayil, Ranjith (15 February 2016). "When to embrace Behaviour Driven Development (BDD)?". SolutionsIQ.
Each work items classified as “d” ,”E” ,” e” ,”p” follows different treatment wrt to the engineering practices like BDD, TDD, , Test first , Test last ,review etc which is based on context that is defined by the team . An example context is presented in my talk.