BDD Training and Coaching

Behaviour Driven Development is the missing link between business needs and effective execution. Only by enabling structured communication and aligned language between business and engineering can we execute on company goals. BDD also provides a significant step to increased quality and compliance, with a built-in advantage towards automated testing. Mastering BDD is a challenge to any organisation, due to the cross-functional nature of this practice. Not only do we need to adopt new practices, such as Story Mapping and Example Mapping, we also need to learn to apply them within the context of our own domain. To help accomplish that, we provide training in combination with on-the-job coaching: learn the practices, then immediately apply them at work.

Level 1: Discovery

The core of BDD is in the alignment between the product and delivery organisations, helping to discover the intent and scope of any new feature or initiative that set the organisation up for effective execution.

This training gives a thorough introduction to the process of refinement for new features. Each session starts with a short (video) introduction to the subject, after which we quickly go into practical sessions doing the work in groups, with frequent feedback and comparisons between the results of each group. We close each session with a summary of lessons learned, and setup for the following steps.

Training

  • Playing by the rules: We do an effective exercise to make clear the difference between talking about ‘requirements’ and using concrete examples to explore a set of business rules.
  • Story Mapping: We take an example feature and do a Story Mapping exercise, showing how we go from a larger whole to smaller stories and do prioritisation of deliverable increments
  • Example Mapping: We take stories from our Story Mapping exercise and discuss the detailed business rules and specific examples
  • Scenarios: We write scenarios based on the examples we found, so that we can verify our understanding of the requirements

This is an all-team training, meaning that it is aimed at all the different roles in a team (Product Owners, Developers, Testers, Designers) and works better the more roles are present during the training.

Training is done on-line in four half-day sessions. The sessions can be planned in a classical 2 day course configuration or spread out over max. 4 weeks.

Coaching

Since no theory survives contact with the day-to-day reality of the workfloor, we provide hands-on coaching of the practices taught in the training. For individual teams, we go through the refinement and help facilitate:

Story Mapping

We facilitate one Story Mapping session for a new feature, a full-team exercise where we start with the idea for a new feature and generate User Stories, ‘Epics’ (possible iterative deliveries of a feature), and a prioritised backlog. (½ day)

Example Mapping

We facilitate two (longer-than-usual) Example Mapping sessions, going through a number of stories from the first slice of out Story Mapping, to dive deeper into the individual stories, surface the right examples, and split the stories into suitable size and complexity for development. (½ day)

Since this practice takes time to embed, we also provide feedback for additional examples generated by the teams in the following weeks. (½ day)

Scenarios

To embed the way of writing scenarios, we go through the examples of a few stories together and write the first scenarios based on them as a group. (½ day)

We also provide feedback for additional examples for the stories discussed in the earlier sessions, so we can guide the adoption of this practice closely. (½ day)

Responsive coaching: available on chat for 1 month, during business hours.

Level 2: Implementation

Training

Implementation: BDD and TDD

We continue with the example features, take the scenarios and implement them using the BDD/TDD embedded cycles. In doing so we learn about The Four Rules of Simple Design, Iterative Design, styles of unit-testing, component and integration testing, hexagonal design, and creating a maintainable, fast test harness for any system.

In this training we go directly into more technical skills, implementing acceptance scenarios as tests, driving the design directly from our domain language, and switching to TDD to implement the production code. We see how we can create a test set that is fast, reliable and gives you the safety net to confidently release to production at any moment. By going through this cycle in quick succession, we explore iterative design and tackle the interaction between tests and the design of production code.

This is a technical training, meaning that it is aimed at Developers and Testers of a delivery team. The training is hands-on and involves the whole team working on code together, using a (distributed) mob programming style.

Training is done on-line in four half-day sessions. The sessions can be planned in a classical 2 day course configuration or spread out over max. 4 weeks.

Coaching

As with Level 1, we provide coaching to help teams apply the learnings from the training in the context of their own codebase. For each team we help to:

Implement cucumber

Implementing cucumber (or similar, depending on the platform) tests within the codebase and build system. Making sure teams do not get stuck at the first steps of adoption, we help setting up the basic infrastructure within the codebase, by joining one or more developers in the team to create and run their first BDD tests. (1 day)

Implement scenarios

Using scenarios formulated with the team for their stories, we implement these scenarios within the codebase to apply the lessons from the training in hexagonal design and the BDD (part of the) cycle. We pay special attention to tuning the needs of the BDD test to the specific technologies and architecture in place, and finding working solutions as well as identifying future improvements. (2 days)

Responsive coaching: available on chat for 1 month, during business hours.

Contact me for for a quote