Managing Software Requirements the Agile Way
上QQ阅读APP看书,第一时间看更新

Chapter 2: Impact Mapping and Behavior-Driven Development

As well as the initial capturing of requirements, as system builders, we also need to deal with changes in requirements. A project's requirements constantly evolve, and we need to react to each stage of their evolution in two steps. The first is to correctly understand what is changing in the requirements. The second is to act on that new information in a way that helps reflect these changes and that influences the design and implementation of our system. To achieve this, we need to have a model that is a meaningful representation of our requirements.

In the previous chapter, we began to explore some of the entities within the requirements domain, namely goals and stakeholders. In this chapter, we'll expand our domain knowledge to capabilities and features and learn how to represent these four domain entities in an impact map. An impact map containing all the goals, stakeholders, capabilities, and features for our system is known as our system's requirements model.

Impact mapping helps us correctly identify and validate our requirements in a visual and traceable manner and it is an excellent complement to the Behavior-Driven Development (BDD) approach that we will be introducing in this chapter. BDD helps us convert our requirements into executable specifications, which can be verified against our delivered system. At the end of this chapter, we will look at the two main categories of requirements – functional and non-functional – and how they can be modeled, analyzed, and specified using impact mapping and BDD.

In this chapter, we will cover the following topics:

Modeling requirements with impact maps

Identifying capabilities and features

Introducing behavior-driven development

Knowing the difference between functional and non-functional requirements

By the end of this chapter, you will know how to distinguish capabilities from features and model basic requirements with an impact map and understand how BDD fits in with impact mapping and how we can model all types of requirements using the techniques presented in this book.