Description

Requirements definition is crucial to the success of any product, especially in volatile and fast­paced, Internet­based industries.

A Requirements Pattern offers a coherent and consistent approach to the entire requirements engineering process ensuring the practitioner’s success. The book covers everything from initial product concept through incremental feature implementation, offering special consideration for the unique challenges of Internet­based software development. The author presents a proven requirements framework that can be used for ensuring the quality and integrity of your requirements set. The requirements set framework coaches to elicit a complete set of requirements including those critical aspects beyond the software.

Three key themes support the information and advice put forth in this book. They are: understanding the breadth of requirements that comprise the Internet requirements set, properly managing the evolutionary process, and initiating parallel and coordinated development efforts for the Internet product.

This book examines:

Capturing all business communities requirements

Managing—through anti­patterns—common requirement­related pitfalls that results in gaps in knowledge, participation, and process

Understanding the roles and responsibilities of those involved in the Internet product development

An important process that includes proper requirement allocation

Implementing requirements configuration management

With the wealth of knowledge and real­world experience revealed in A Requirements Pattern, you will be well equipped to develop quality Internet products that successfully improve the products’ return on investment.

Preface

Corporations today allocate billions of dollars to information technology (IT), not only to stay afloat but also to expand market share in the fast-paced global marketplace. The combination of hardware, software, and networks provides valuable information and performs critical functions for a corporation, its stockholders, and clients. Indeed, information technology has become the backbone of the modern corporation. Without successful and high-quality IT solutions, the success of a corporation can be compromised. Defects in IT products can result in missed market opportunities, ineffective strategic decisions, and lost market share.

The first step toward developing, enhancing, or maintaining IT solutions is to understand the needs and wants of the business. This is the most challenging part of the entire effort. As you will discover in this book, if you get the requirements wrong, the final product will not satisfy the needs of the business. In fact, this wasted effort will cost the company greatly. The Standish Group has been following failed IT projects since 1995. Across the board, the researchers have found poor requirements, in one form or another, to be one of the top causes of costly project failures. “Poor requirements” refers to a failure to capture the needs that must be satisifed by the solution. Typically, failures in IT projects are not the fault of an individual or even a department. Nor are these failures the fault of a specific technique or tool used to gather the requirements of a project. The problem, more often, lies in misunderstanding the definition, process, practices, and management of requirements. In the end, requirements have a major impact on a project’s success. The project may be done on time and within budget, but unless the requirements are complete and accurate, the project will be a failure.

Requirement is an ambiguous term. Different people will provide valid but different points of view, with perhaps some overlap. There lies the problem! Our individual views of requirements have been narrow, allowing for gaps that lead to defects in the final product. The final set of requirements may turn out to be full of intangible, moving targets that are inherently inconsistent. This leads to a poor-quality product, which in turn diminishes the return on investment for the corporation.

Why This Book?The purpose of this book is to clarify this ambiguity. The book focuses on several perspectives designed to create a common understanding of requirements, from concept through implementation. The evolution, classification, and management of requirements are placed in easy-to-understand terms, so that everyone can share a common level of understanding. A framework is provided that categorizes and organizes the different types of requirements, forming a requirements set. The requirements pattern, based on the requirements set framework, is provided to assist in capturing and evolving the individual requirements. Information on the best requirement-related practices is provided to ensure the quality and integrity of the individual requirements and the requirements set.

The ideas in A Requirements Pattern can be applied to any product (including non-IT-oriented ones). The Internet is used here primarily for illustrative purposes. This volatile environment provides many examples that clearly explain the four key topics of this book:

1. The breadth of requirements that comprise the requirements set

2. The evolutionary process of a requirement from the conceptual idea to the implemented feature

3. The need to initiate parallel and coordinated requirement development efforts

4. The impact of change (including scope creep) on Internet products

By understanding the concepts presented, you will be able to see the gaps created with current methodologies, methods, and techniques. It is important to be able to see that requirements are not just documentation but rather a full understanding of the problem, the environment in which requirements are developed, and the delivered features of the solution.

The generic role responsible for requirement-related activities is the requirements engineer, the primary audience for this book. Requirements engineers must have a detailed understanding of the requirements process and the valuable role requirements engineers play in maximizing the product’s return on investment. The more they understand, the better equipped they will be to tackle the nuances of the Internet.

Technical analysts and architects many times must gather specific types of requirements and therefore will also benefit from reading this book. Each may have a different focus during the development process. It is important to realize the impact their requirements have on other areas of the project. Even if the analysts and architects are not involved in eliciting the business requirements, they will have an impact on those requirements. These personnel need to have an understanding of the evolution of the requirements from inception until they are allocated for development.

The quality of requirements has a direct impact on the cost of the final product. It is the job of the quality control analyst to assist with validating the specified requirements for possible defects, a topic addressed in A Requirements Pattern. By understanding how to identify the quality of a requirement, quality control analysts can actively participate in validation. They contribute to the requirements process by identifying inconsistencies long before code testing.

Many books already exist on the requirements process, techniques, and methods. Other books address what good requirements are as well as various elicitation, analysis, verification, and management techniques. Examples of such books are provided in the Additional Resources section at the back of the book. This helpful compilation provides suggestions for a continual path of education in the field of requirements engineering. The Internet requirements pattern presented in this book complements all of the recommendations by introducing readers to the basics of requirements, requirements engineering, and requirements management. Requirements engineering is an integral part of developing software. It is time consuming and at times a tedious activity. The size and type of a project seem to have little effect on the complexity of this process. The incorporation of the Internet requirements pattern (and anti-patterns) and activities described in this book will enhance the requirements engineer’s efforts. With the fuller understanding of requirements, readers can make positive impacts when developing quality solutions for their companies.