Preface

Most studies in software development and project management concur that failures in requirements management are by far the most common cause of software project failure. Inaccurate or unclear requirements, a misalignment of requirements with business goals, and an inability to adapt to changes in requirements are some of the major reasons why software projects fail. This book intends to give you the weapons you need to ensure that your project avoids these pitfalls.

The aim of this book is to define, describe, and explain a clear and concise methodology, that is, a collection of rules, steps, and techniques, to help you discover, manage, and deliver requirements in an agile manner. This is achieved by applying the principles of Behavior-Driven Development (BDD) in conjunction with a number of known techniques, such as impact mapping, and some new ones, including D3 and feature-first development.

Who this book is for

This book is for software engineers, business analysts, product owners, project managers, or software project stakeholders who are looking to learn how to discover, define, model, and deliver software requirements. A fundamental understanding of the Software Development Life Cycle (SDLC) is needed to get started with this book. In addition to this, basic knowledge of the Agile philosophy and practices, such as Scrum, and some basic programming experience will be useful to get the most out of this book, but is not mandatory.

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.

To get the most out of this book

A general knowledge of software engineering is all you need to follow this book, though any working experience with Scrum or Kanban will help. The only code involved is presented in Chapter 8, Creating Automated Verification Code, where sample verification code in the Ruby programming language is presented.

To run the code samples, you will need to also install the following Ruby gems (libraries): cucumber, watir, and webdrivers.

If you are using the digital version of this book, we advise you to type the code yourself or access the code via the GitHub repository (link available in the next section). Doing so will help you avoid any potential errors related to the copying and pasting of code.

Download the example code files

You can download the example code files for this book from your account at www.packt.com. If you purchased this book elsewhere, you can visit www.packtpub.com/support and register to have the files emailed directly to you.

You can download the code files by following these steps:

  1. Log in or register at www.packt.com.
  2. Select the Support tab.
  3. Click on Code Downloads.
  4. Enter the name of the book in the Search box and follow the onscreen instructions.

Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:

  • WinRAR/7-Zip for Windows
  • Zipeg/iZip/UnRarX for Mac
  • 7-Zip/PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Managing-Software-Requirements-the-Agile-Way. In case there's an update to the code, it will be updated on the existing GitHub repository.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Download the color images

We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://static.packt-cdn.com/downloads/9781800206465_ColorImages.pdf.

Conventions used

There are a number of text conventions used throughout this book.

Code in text: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "We put our features in files with the .feature extension, while our step definitions reside in files with an appropriate language extension, such as .rb for Ruby, .py for Python, .java for Java, and so on."

A block of code is set as follows:

require 'watir'

require 'webdrivers'

require 'minitest'

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

  @browser = Watir::Browser.new

end

Any command-line input or output is written as follows:

cucumber --exclude traveler_login_[cf]

Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "Select System info from the Administration panel."

Tips or important notes

Appear like this.

Get in touch

Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book, mention the book title in the subject of your message and email us at [email protected].

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/support/errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.

Reviews

Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!

For more information about Packt, please visit packt.com.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.188.216.249