Learn how to deliver software that meets your clients' needs with the help of a structured, end-to-end methodology for managing software requirements and building suitable systems
▶Book Description
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.
▶What You Will Learn
⦁Kick-start the requirements-gathering and analysis process in your first meeting with the client
⦁Accurately define system behavior as features
⦁Model and describe requirement entities using Impact Mapping and BDD
⦁Create a feature-based product backlog and use it to drive software development
⦁Write verification code to turn features into executable specifications
⦁Deliver the right software and respond to change using either Scrum or Kanban
⦁Choose appropriate software tools to provide transparency and traceability to your clients
▶Key Features
⦁Learn how to communicate with a project's stakeholders to elicit software requirements
⦁Deal every phase of the requirement life cycle with pragmatic methods and techniques
⦁Manage the software development process and deliver verified requirements using Scrum and Kanban
▶Who This Book Is For
This book is for software engineers, business analysts, product managers, project managers, and software project stakeholders looking to learn a variety of techniques and methodologies for collating accurate software requirements. A fundamental understanding of the software development life cycle (SDLC) is needed to get started with this book. Although not necessary, basic knowledge of the Agile philosophy and practices, such as Scrum, along with some programming experience will help you to get the most out of this book.
▶What this book covers
⦁ Chapter 1, The Requirements Domain, helps you understand the requirements domain and the difference between requirements and specifications, and introduces you to goals and stakeholders, two of the four requirements domain entities.
⦁ Chapter 2, Impact Mapping and Behavior-Driven Development, expands our knowledge of the requirements domain by defining and explaining capabilities and features. It then helps us learn how to model our requirement entities using impact maps. Finally, this chapter helps us to explore BDD and see how it complements impact mapping to provide a comprehensive requirements analysis approach.
⦁ Chapter 3, Writing Fantastic Features with the Gherkin Language, details how to define system behaviors as feature scenarios using the Gherkin language. It provides tips and techniques that will allow you to take full advantage of the expressiveness of Gherkin. It also explains how features can be leveraged as executable specifications.
⦁ Chapter 4, Crafting Features Using Principles and Patterns, offers techniques, patterns, and thought processes that will enable you to write durable and well-scoped features. It also shows you common mistakes that should be avoided.
⦁ Chapter 5, Discovering and Analyzing Requirements, teaches you three different techniques for capturing and analyzing requirements from stakeholders.
⦁ Chapter 6, Organizing Requirements, tells you what you need to do to provide transparency and traceability to stakeholders and how to get ready in order to start delivering requirements as part of an agile development cycle.
⦁ Chapter 7, Feature-First Development, illustrates how to turn features into code, using a software development process that can be applied within the Scrum framework or the Kanban method.
⦁ Chapter 8, Creating Automated Verification Code, shows you how to write solid verification code using specific design patterns.
⦁ Chapter 9, The Requirements Life Cycle, starts by outlining the techniques and methods learned in this book within the context of the canonical requirements management life cycle. Finally, it summarizes the requirements management workflow exhibited in this book.
⦁ Chapter 10, Use Case: The Camford University Paper Publishing System, recreates the beginning of a typical requirements analysis and modeling workflow using a fictional project. It also provides some tips and advice for project and client management.