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 learnKick-start the requirements-gathering and analysis process in your first meeting with the clientAccurately define system behavior as featuresModel and describe requirement entities using Impact Mapping and BDDCreate a feature-based product backlog and use it to drive software developmentWrite verification code to turn features into executable specificationsDeliver the right software and respond to change using either Scrum or KanbanChoose appropriate software tools to provide transparency and traceability to your clientsWho this book is forThis 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.