Today's Internet-based software must be developed at a breakneck pace, and it must deliver unprecedented levels of performance, reliability, and availability. Success begins with absolute clarity about requirements. A Requirements Pattern helps developers and project team members gain that clarity, by presenting a proven pattern for building superior Internet-based software. Leading consultant Patricia Ferdinandi begins by demonstrating why requirements are so crucial in today's development environments, and why a modern requirements approach can make it far easier to build successful Internet software. This book introduces software requirements for functional project elements, non-functional elements, and quality levels. It demonstrates how to use requirements to build software that is flexible and can evolve to meet new business needs; how to ask the right questions; and how to manage the requirements process, specifying the most appropriate role for each participant. Ferdinandi even presents a full chapter of e-commerce "anti-patterns" that have proven to fail in real-world development -- and what to do instead. For all software engineers, systems analysts, quality control personnel, project leaders, and other participants in Internet application development projects.
Click below for Sample Chapter related to this title:
1. What Is…
What Is Requirements Engineering.
What Is the State of Requirements Today.
What Is Technologies Involvement.
What Is the Path to Satisfying the Current Needs of the Business.
What Is Internet.
The Internet Explosion.
New Lines of Business.
Profit versus Potential Revenue.
How Does One Work with and Impact the Other.
Understanding Requirements Engineering.
The Common Perspective.
Terminology — A Common Understanding.
What Is Internet.
What Is a Requirement.
What Is an Internet Requirement.
What Is a Pattern.
What Is a Requirements Pattern.
What Is an Internet Requirements Pattern.
What Is an Anti-Pattern.
What Is an Internet Requirements Anti-Pattern.
What Is a Requirement Process.
Requirement Versus Requirement Specification Versus Requirement Set.
The Requirement Evolution.
The Manufacturing Process.
The Internet Development Process.
Requirement Development Process.
The Birth of an Idea.
The Business Case … Do You Belong on the Net.
The Requirement Process.
What a Process.
Current Requirement Process Scenario.
The Correlation between Allocation Level and Perspective.
Requirements Evolving through Perspectives.
The Requirement Subprocess.
Approval as a Separate Activity.
Quality Gate Checkpoints.
Managing the Requirements and the Requirement Set.
The Subprocess Is a Generic Process.
Relationships between Categories.
A Quality Home.
Different Views of the Same House.
Different Focuses of the Same Software Solution.
Extensions to the Information Systems Architecture.
The Kick off.
Changing Business Model.
Understanding the Problem or Need.
Preparing for Allocation.
The Pattern Specifics.
Cell Association Checklist.
Gap in Knowledge.
Hacker Intervention <38> Other Security Issues.
Quality of Service Impact.
Create Read Update Delete List (Crudl).
Gap in Participation.
The Business Model Tolerance Indicators.
Network Engineers Involvement.
Gap in Process.
When Designers Take Over (Technology for the Sake of Technology).
The Imposed Deadline.
Identifying Additional Antipatterns.
Individual Requirement Quality.
Parts of a Requirement.
Requirement Specification Quality.
Requirement Set Quality.
Unit Test Versus System Test.
Prototyping the Requirements.
Requirements Management Configuration Management.
Software Engineering Institute — Capability Maturity Model.
Level 2: Repeatable.
Interpreting the Capability Maturity Model.
What Is Configuration Management.
Configuration Management for Requirements.
Supporting the Configuration Management of Requirements.
How to Implement RCM for Internet Type Applications.
What to Manage Under Requirements.
Preparing for Implementation.
The Implementation Process.
Data Warehouse Specialist.
Test Analyst Quality Control Analyst.
Writer, Editors <38> User Education.
The Power of Meeting Minutes.
The Requirement Engineering Roles.
The Necessary Skills the Requirement Engineering Organization.
The Internet Organization.
How Long Will This Take.
How to Get Started.
Applying the Requirement Pattern to Other Applications Types.
Key Points to Remember.
Sources for Additional Information.
Recap of What the Book Discussed.
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:
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.
A2A (application-to-application), 27
acceptance criteria, defined, 457
ad hoc development method
early days of Internet using, 226
adaptability requirements, 97-98
aka (also known as), Internet anti-patterns, 193
Alexander, Christopher, 159-160
business units and, 14
defining scope of responsibility for, 55
business units and, 13-14
perspective and, 58-60
preparing ideas for, 121-124
of requirements, 50-52
requirements subprocess and, 60-64
tolerance value and, 181
validation and, 68
allocation levels defined, 458
overview of, 50-52
perspective and, 59
using requirements management tools, 56
also known as (aka), Internet anti-patterns, 193
Amazon.com clickstream data of, 181-182
customer-centric focus of, 21
joining ToysRUs with, 9
profits and, 177
ambiguity, defined, 458
analog modems, hacker attacks and, 164
analysis. See also feasibility
builder perspective, 415-416
designer perspective, 413
owner perspective, 410-411
planner perspective, 408
of requirements, 64-65
as requirements subprocess role, 63
subcontractor perspective, 418, 420
tools for, 232-233
overview of, 153-154
quality-checking and, 170-171, 212-213
anthropologists, roles/responsibilities of, 284-285
anti-patterns. See also Internet requirements anti-patterns; requirements anti-pattern
defined, 32, 458
overview of, 159-161
anti-patterns, creating, 190-197
information to be included, 192-196
overview of, 190-192
review and use of, 196-197
application-to-application (A2A), 27
architecture of, 132-133
configuration management and, 226
builder perspective, 417
business case questions, 124
business initiator responsibilities, 270
designer perspective, 414-415
owner perspective, 412
planner perspective, 409
requirements subprocess and, 63
review of requirements set, 68-69
as separate activity, 68-69
subcontractor perspective, 419-420
validation and, 68
approver, authorizing changes, 245-246
allocation level, 51-52
application and technological,132-133
perspective of, 83-84
ARM Quality Indicator/Quality Attribute Correlation, 217-220
comparing requirement vs., 28
association, predator, 166
cell association checklist for
defined, 55, 458
defining for tolerance requirement, 180-181
overview of, 109-112
audience, changes to requirements, 245-246
audit, configuration management, 249
auto-response messaging, 136-137
automotive industry, requirements, 19-20
B2B (business-to-business). See business-to-business (B2B)
B2C (business-to-consumer), 25-27
B2S (business-to-staff ), 26-27
B2W (business-to-wireless), 27
BA (business analyst)
requirements engineer as, 290
role of, 294
“based upon” clause, 193-194
baseline management, 248, 458
baselines, 238, 243
BO (business organization)
adding to infrastructure, 108-109
overview of, 77-78
Board of Directors, 126
BP (business practices). See business practices (BP)
brokerage houses, requirements, 19-20
BS (business support)
adding to infrastructure, 108-109
overview of, 77-78
bugs. See defects
builder-level prototypes, 221
focus of, 156
how requirements, 148-149
objectives of, 138-139
overview of, 86
product constraints, 149-151
project constraints, 151-152
reviewing function of, 246
role of, 294
what requirements, 144-145
when requirements, 146
where requirements, 145-146
who requirements, 143
why requirements, 146-148
builder perspective, IRP for IT
how requirements, 386
product constraints, 387
project constraints, 388-389
what requirements, 382-383
when requirements, 384-385
where requirements, 383-384
who requirements, 382
why requirements, 385
business analyst (BA)
requirements engineer as, 290
role of, 294
business cases.See also business models
building, 46-47, 320-321
IRP for IT community, 339-340
questions for, 122-124
requirements subprocess and, 62
scoping requirements for, 47-49
adding to infrastructure, 105-109
allocating requirements to, 13-14, 125
avoiding politics of, 52-54
defined, 13, 79, 459
focus and, 79-80
getting started, 320-321
overview of, 75-79
quality-checking with walkthroughs, 216-217
requirements evolving through, 59-60
ripple effect of changes, 225
scalability and, 99-102
security as responsibility of, 166
categories of, 125-140
business practice, 126-127