1 Building software that makes a difference


This chapter covers

  • The problems that Behavior-Driven Development addresses
  • General principles and origins of Behavior-Driven Development
  • Activities and outcomes seen in a Behavior-Driven Development project
  • The pros and cons of Behavior-Driven Development

This book is about building and delivering software that works well and is easy to change and maintain, but more importantly, it’s about building software that provides real value to its users. We want to build software well, but we also need to build software that’s worth building.

In 2012, the US Air Force decided to ditch a major software project that had already cost over $1 billion. The Expeditionary Combat Support System was designed to modernize and streamline supply chain management in order to save billions of dollars and meet new legislative requirements. But after seven years of development, the system had still “not yielded any significant military capability.”1 The Air Force estimated that an additional $1.1 billion would be required to deliver just a quarter of the original scope and that the solution could not be rolled out until 2020, three years after the legislative deadline of 2017.

1.1 BDD from 50,000 feet

1.2 What problems are you trying to solve?

1.2.1 Building the software right

1.2.2 Building the right software

1.2.3 The knowledge constraint: Dealing with uncertainty

1.3 Is BDD right for your projects?

1.4 What you will learn in this book