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 better software. It’s about building 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 U.S. Air Force decided to ditch a major software project that had already cost over $1 billion USD. 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 USD 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       Introducing Behavior-Driven Development

1.3.1   BDD was originally designed as an improved version of TDD

1.3.2   BDD also works well for requirements analysis

1.3.3   BDD principles and practices

1.4       Benefits of BDD

1.4.1   Reduced waste

1.4.2   Reduced costs

1.4.3   Easier and safer changes

1.4.4   Faster releases

1.5       Disadvantages and potential challenges of BDD

1.5.1   BDD requires high business engagement and collaboration

1.5.2   BDD works best in an Agile or iterative context

1.5.3   BDD doesn’t work well in a silo

1.5.4   Poorly written tests can lead to higher test-maintenance costs

1.6       Summary

sitemap