Book Image

Managing Software Requirements the Agile Way

By : Fred Heath
Book Image

Managing Software Requirements the Agile Way

By: Fred Heath

Overview of this book

Difficulty in accurately capturing and managing requirements is the most common cause of software project failure. Learning how to analyze and model requirements and produce specifications that are connected to working code is the single most fundamental step that you can take toward project success. This book focuses on a delineated and structured methodology that will help you analyze requirements and write comprehensive, verifiable specifications. You'll start by learning about the different entities in the requirements domain and how to discover them based on customer input. You’ll then explore tried-and-tested methods such as impact mapping and behavior-driven development (BDD), along with new techniques such as D3 and feature-first development. This book takes you through the process of modeling customer requirements as impact maps and writing them as executable specifications. You’ll also understand how to organize and prioritize project tasks using Agile frameworks, such as Kanban and Scrum, and verify specifications against the delivered code. Finally, you'll see how to start implementing the requirements management methodology in a real-life scenario. By the end of this book, you'll be able to model and manage requirements to create executable specifications that will help you deliver successful software projects.
Table of Contents (12 chapters)

A traveling analogy of goals, requirements, and specifications

Here's a thought experiment to help you to visualize the relationship between goals, requirements, and specifications. Imagine, for a moment, that you're a visitor to the great city of Cardiff in Wales, United Kingdom, and you want to sample some of the famous Welsh cakes you have heard so much about – mainly from me! So, you take out your cell phone map app and you search for the nearest Welsh cake bakery. You then ask the app for directions to the bakery. The app gives you a choice of routes dependent on your mode of transportation, the time of the day and the local traffic conditions. You then choose a route and follow it, hoping to sample some local delicacies. Let's relate this to requirements management:

  • Your goal is to eat some Welsh cakes.
  • Getting to the bakery is your requirement.
  • The route you choose to follow is your specification.

It's clear that unless you have the specification (route to bakery), you will never be able to realize your requirement (get to the bakery), and achieve your goal (eat some yummy Welsh cakes!). In much the same way, unless we have a specification, we will never be able to build a system that will help our stakeholders reach their goals.