BDD has crossed the chasm

Posted by John Ferguson Smart

In the latest InfoQ Engineering Culture and Methods Report, for the first time, the essential agile practices of Behaviour Driven Development (BDD), Craftsmanship and Coaching/Mentoring appear in the Early Majority category. It is not to soon. High performing organisations and teams have long realised that Scrum alone is not enough. One survey actually found that…

Who owns your Gherkin scenarios

Posted by John Ferguson Smart
Gherkin scenarios | Requirements Discovery | Xscale |

“In a team practicing BDD, who owns the Gherkin scenarios?” I’ve been asked this question more than once, so I thought I’d pen an answer. Gherkin is the Given..When..Then notation commonly used to express acceptance criteria in agile projects. It is notably used by Cucumber and other related Behaviour Driven Development tools. Cucumber lets you…

BDD is a disruptor

Posted by John Ferguson Smart
bdd | Requirements Discovery | Xscale |

Remember when the iPhone came out? Remember how Steve Jobs pitched that it “Changed Everything”, the first time? Maybe he was exaggerating a little, but there is no doubt that the iPhone was a game-changer. It changed the way we thought about what a telephone should do. The iPhone was what we call a market…

Living Documentation: it’s not just about test reports

Posted by John Ferguson Smart
Living documentation | Requirements Discovery | Xscale |

What is Living documentation Living Documentation comes from the world of Behaviour Driven Development, and is closely related to the idea of Executable Specifications. But what do we mean by “living documentation”? Living documentation is, as the name suggests, both documentation, and living. It is documentation. It describes how an application works, and what business rules affect…

Working with AngularJS apps in Serenity BDD

Posted by John Ferguson Smart
AngularJS | Requirements Discovery | Xscale |

AngularJS applications have their own challenges when it comes to WebDriver test automation. The asycnhronous nature of Angular apps makes testing these applications particularly tricky when using traditional WebDriver-based technologies. In the JavaScript world, Protractor provides an elegant solution to the problem of testing AngularJS apps. Protractor supports angular-specific locators and knows how to wait…

High Performance Teams and the Three Strands of Value

Posted by John Ferguson Smart
Requirements Discovery | Strands of Value | Xscale |

Teams don’t actually deliver value. They increase their customers’ capability to generate value. And the key to increasing this capability is not churning out features. It is learning about the problems the customers are trying to solve, and about the best ways to solve these problems. Techniques like Scrum do place a strong emphasis on…

Running parallel tests in Cucumber with Serenity BDD

Posted by John Ferguson Smart
Cucumber test | Requirements Discovery | Xscale |

Running parallel tests in Cucumber with Serenity BDD has always been tricky. Until now. People often ask me how to run their Cucumber/Serenity BDD test suites faster. Fast feedback is key to a smooth build pipeline and to an effective test suite. A quick-running test suite means we can know when something goes wrong, and…

One to request, one to suggest and one to protest – the anatomy of a Three Amigos Requirements Discovery workshop

Posted by John Ferguson Smart
bdd | Requirements Discovery | Xscale |

Behaviour Driven Development (or BDD) is a collaborative requirements discovery practice that uses conversations around concrete examples to build a shared understanding and deliver features that matter. The “Three Amigos” workshops are a core part of BDD practices. It is also an important requirements discovery practice used even in teams who are not officially “doing”…

Running individual scenarios in JBehave or Cucumber with Serenity BDD

Posted by John Ferguson Smart
JBehave | Requirements Discovery | Xscale |

When we are working with BDD test automation tools such as Cucumber and JBehave, it often comes in handy to run an individual scenario in isolation. In this article, we look at how to do this using Serenity BDD. JBehave In JBehave, you need to use tags to identify the scenario you want to run….

Tell me what you know – a different way of looking at requirements discovery

Posted by John Ferguson Smart
Requirements Discovery | requirements process | Xscale |

The legacy of the linear requirements process When I started out in software development, we had a thing called a Requirements Specifications Document. Business Analysts would spend a very long time gathering the requirements, organising them, and writing them down in a large Word document. Over time, folk found this approach to be inefficient and…

© 2019 John Ferguson Smart