John Ferguson Smart

John's latest articles

Getting into the BDD rhythm

Posted by John Ferguson Smart

For many teams, the benefits of Behaviour Driven Development are obvious. Teams that practice BDD well see significantly lower defect rates and higher quality features. More importantly, they stand a much higher chance of delivering the solutions the customer actually needs. The benefits of BDD are obvious. But then so are the benefits of exercise,…

Read More

BDD and the four pillars of business agility

Posted by John Ferguson Smart

People often ask where Behaviour Driven Development, or BDD, fits with regards to other agile practices. Managers might say “BDD sounds great. But how do we align our agile transformation strategy with BDD adoption?”. Some ask “Does BDD work with Scrum/SAFe/Kanban/<insert your favourite agile methodology here>”? Some folk even simply ask “So are we doing…

Read More

What is Behaviour Driven Development? The executive summary

Posted by John Ferguson Smart

Behaviour Driven Development (or BDD) is a powerful collaborative methodology that helps teams focus on delivering high value features sooner and more reliably. BDD builds on and extends standard agile practices such as sprint planning and backlog grooming, user stories and acceptance criteria, and makes them much more effective.  Teams practicing Behaviour Driven Development routinely…

Read More

BDD Treaties

Posted by John Ferguson Smart

Better cross-team coordination with collaborative governance and executable specifications Getting multiple teams to work together effectively on large projects can be tricky. We expect teams to be autonomous and independent. But at the same time we expect them to coordinate with other equally autonomous and independent teams, so that their modules or services mesh seamlessly…

Read More

Can you use BDD for legacy applications? Sure you can!

Posted by John Ferguson Smart

A few folk have been asking me about how BDD works with legacy applications. So here are my thoughts. BDD is a collaboration process that involves multiple team members working together with BAs, business or product owners to discover and refine requirements using structured conversations about examples of user and system behaviour. It is an…

Read More

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…

Read More

Who owns your Gherkin scenarios

Posted by John Ferguson Smart

“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…

Read More

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

Posted by John Ferguson Smart

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”…

Read More

Don’t let automation sabotage your BDD adoption

Posted by John Ferguson Smart

Test Automation can be a powerful aid for teams adopting Behaviour Driven Development. But do it too early, or in the wrong way, and your efforts can have the opposite effect. We all want to deliver great products. We all want to delight our customers. But sometimes, reality gets in the way, and delivering features…

Read More

The Three “A”s, building blocks for a great test suite

Posted by John Ferguson Smart

Writing high quality automated tests is not easy, especially for manual testers who are relatively new to automation. There is a learning curve. But the cost of not writing high quality test code, both in terms of maintenance and time wasted on unreliable or hard-to-update tests, is unsustainable for any but the smallest project. This…

Read More

User-centric and task-driven: a better way to automate

Posted by John Ferguson Smart

Too often, our acceptance tests end up as sequences of “click”s and “select”s running against a web application. This makes our tests hard to understand and hard to maintain. User-centric, task-driven test automation shows us a better way. When we learn something new, it is easy to get stuck in a low-level, details-focused way of…

Read More

Screenplay with Serenity BDD: the next stage in automated acceptance testing

Posted by John Ferguson Smart

I spoke recently at the CraftConf conference in Budapest on writing higher quality automated tests using the Screenplay pattern. The last half of the talk contains a live demo of using the Screenplay pattern with Serenity BDD. Learn how to write robust and articulate tests using the Screenplay Pattern, an innovative approach to writing BDD-style…

Read More

Multi-browser and multi-environment testing in Serenity BDD

Posted by John Ferguson Smart

Sometimes we might want to run the same test in different environments, or on different browsers, and still see each test run appear in the reports. The latest version of Serenity BDD allows you to implement multi-browser and multi-environment testing using the notion of contexts. A context is a way of running the same test several…

Read More

Running Serenity BDD tests with Tags

Posted by John Ferguson Smart

Tags are a powerful feature of Serenity, making it much easier to read, understand and navigate through the test reports. But tags also allow you to be more selective about what tests you run. This article shows you how. There are many times when it comes in handy to run just a subset of our…

Read More

When what we ask for is not what we get, and what we get is not what we need

Posted by John Ferguson Smart

Great teams deliver great products by solving problems their customers had but didn’t fully express, in ways they didn’t imagine possible. To deliver truly great products, software or otherwise, we need to go beyond what the customers or users ask for. We need to discover, understand and deliver what they really need. “If I had…

Read More