The Quest For Requirements Whitepaper
The Quest For Requirements Whitepaper
The main responsibility of the analyst is the discovery, analysis, documentation, and
communication of requirements. A requirement is simply a feature that a product or
service must have in order to be useful to its stakeholders. For example, two
requirements for a customer relationship management system might be to allow users
to update the payment terms for an account and to add new customers.
Definition of a Requirement
A more precise definition is provided by the IEEE Glossary of Software Engineering
Terminology and the Business Analysis Body of Knowledge® (BABOK®). Both define a
requirement as a
The BABOK® defines the following requirements types: business, user (stakeholder),
functional (solution), non-functional (quality of service), constraint, and implementation
(transition).
Note that these terms are overloaded and often have different definitions within some
organizations. For example, a user requirement is referred to as a business requirement
in some organizations and a business requirement is sometimes called a business goal or
project objective. Functional requirements are also often called technical requirements,
detailed requirements, or system requirements. So, it is important to understand the
semantics of the terms being used. If in doubt, ask, but don’t assume. In fact, publish a
glossary of terms to clarify the meaning of terms that are used by the project team.
Type Example
Business
reduce incorrectly processed orders by 50% by the end of next
quarter
increase repeat orders from customer by 10% within six months
after deployment
User/Stakeholder
add new customer account
view order history
check order status
create new order
Functional/Solution
display customer last name as a link to account history
allow sorting by account opening date
Non-Functional
allow up to 200 concurrent users
require strong passwords of at least 8 characters in length
containing a minimum of one non-alphabet character
Implementation/Transition
must run on all Java platforms including 64-bit versions
users must pass an online certification before being allowed to use
the system
Scope
The scope of a project refers to the agreed upon set of features that the final product
will contain. Scope creep is a common occurrence and it describes the propensity of
scope to expand as stakeholders add requirements during the project without regard to
its impact on budget, schedule, and deliverables. The project manager must work with
the stakeholders to get agreement on the scope.
Stakeholders
The stakeholders are the main source of requirements. They have specific needs that
the analyst must identify. This is easier said than done: often stakeholders are not quite
sure what they need and they often don't know how to express what they need. It is the
analyst’s job to help uncover the requirements of the stakeholders.
A stakeholder is anyone who has an interest in the successful outcome of the project,
including project sponsors, users, business executives, managers, developers, clients,
customers, vendors, and government or regulatory agencies.
"The hardest single part of building a software system is deciding precisely what
to build. No other part of the conceptual work is as difficult as establishing the
detailed technical requirement, including all the interfaces to people, machines,
and to other software systems. No other part of the work so cripples the
resulting system if done wrong. No other part is more difficult to rectify later."
He goes on to say that in a systems development project there are two kinds of
complexities that must be managed: accidental and essential (or inherent).
Brooks also argues that systems are best developed incrementally. Start with something
small that you understand and improve and expand it rather than building the
penultimate version at the outset. This approach is the foundation for iterative and agile
methods.
Requirements Management
Requirements management is the process of defining and maintaining the requirements
that form the agreement between the project team and the stakeholders. A
requirements management plan (RMP) is a document that defines the process,
1
Brooks, F., “No Silver Bullet: Essence and Accidents of Software Engineering”. IEEE Computer, 20 (4),
April 1987, pp. 10 – 19.
2
A mashup is a re-combination of available web components to provide powerful new functionality using simple
visual editors and little programming. As examples, see Yahoo pipes and Google mashups.
Requirements Process
The process of requirements specification can be broken down into discovery
(elicitation), analysis, modeling and documentation, communication, and validation (see
Figure 2.) As part of the process, the project team must also negotiate the relative
importance of each requirement, so that an appropriate prioritization can be
established. The requirements that are considered to be implementable within the
allocated time and budget are called the project scope or simply scope.
The project team generally implements the requirements in order of priority, starting
with the most important ones. The reason is simple: most projects have limited time
and budget and commonly not all requirements can be addressed. By the time we run
out of time and money the stakeholders would want the most important requirements
taken care of. While this sounds simple, establishing and negotiating the priorities of
requirements can often be very difficult and politically challenging. Stakeholders don't
want to prioritize for fear of not getting what they want; the project team does not
want an unlimited scope as they know that they likely cannot accomplish everything
with the allotted resources.
Stakeholder Obligations
For an IT project to be successful, the stakeholders have certain responsibilities:
they must spend the time with the analyst and educate them about their
business and help them understand their objectives
they need to allocate the time necessary to provide clear requirements and
validate the requirements in a timely fashion
they must precisely describe their requirement; vaguely stated requirements
are not implementable and documenting them is a waste of time
they must provide feedback when needed
they must provide additional information in a timely fashion
they must prioritize the requirements
they must respect the estimates for time and budget provided by the project
team and resist the urge to "negotiate"
they must inform the project team of changes to requirements as soon as
they occur
The analyst must continually remind (in subtle ways, of course) the stakeholders of their
responsibilities. If the stakeholders don’t live up to them, then that introduces project
risks which must be made known to the projects manager and included in the project’s
risk catalog.
Plan the requirements elicitation process and how the team will document
and validate the requirements. This plan is referred to as the Requirements
Management Plan (RMP) and is considered a key document for project
planning.
Write a Project Charter or Project Mission Statement containing the business
requirements and the overall scope of the project. Often a Context Diagram is
provided to clarify the scope of the system development effort. All
Requirements Analysis
As soon as requirements have been identified, they must be analyzed to ensure that
they are correct, not in conflict with each other, and that they are precisely understood
by all stakeholders. During analysis, the requirements must be decomposed into
sufficient detail so that the project team can accurately estimate effort for
implementation and assure that the requirements are indeed feasible.
context diagrams
use case model
conceptual data models and data dictionary
user interface model
business process models
prioritized requirements catalog
business rule catalog
prototypes (horizontal discovery as well as vertical feasibility prototypes)
Requirements Documentation
To communicate the requirements to the stakeholders for validation and to provide the
development team with a thorough understanding of what must be done, the analyst
must write a requirements specification. This is simply called the requirements package
as there are no industry standards for the format of that specification. Every
organization has adopted a different document template. It is important, however, that
an organization has a standard document template. The template must be flexible as no
single structure will fit all projects.
The successful analyst knows how to select the right documentation techniques and
does not limit himself to just one documentation approach, such as wireframes, use
cases, or narrative requirements. He blends the different approaches to specify all
requirements clearly, unambiguously, and concisely.
While writing documentation is generally not a value-added activity from the user's
perspective, it is a necessary mechanism to mitigate certain project risks. The amount of
necessary documentation is dependent on the specific risks that are present,
particularly when projects are implemented by outsourcing partners, distributed teams,
or when access to stakeholders is limited or sporadic.
Requirements Validation
Requirements must be validated prior to implementation to assure that they are
correctly understood and still valid lest the team wastes precious resources
implementing functionality that is not needed. Validation is achieved through several
means, including:
Documentation Formats
Requirements are commonly written as simple narrative statements. User requirements
are best expressed as more elaborate documents. A common format for documenting
user requirements are use cases. In addition, constructing visual models simplifies
communication of complex requirements. A visual model, such as a UML diagram, can
more precisely describe requirements than a written paragraph. It is also easier to
Requirements Identification
All requirements must be labeled so that it is easy to refer to them through a unique
handle rather than its description. The following conventions are often used:
User Requirements are expressed as use cases and use the prefix UC, e.g.,
UC1.
Functional Requirements use the prefixes R or FR, e.g., R92, FR876
Business Requirements use the prefix O (for objective), e.g., O2
Business Rules use the prefix BR, e.g., BR12
Non-Functional (or Quality of Service) Requirements also use the prefix R,
although some prefer to use NFR, e.g., R14 or NFR23
Requirements Traceability
Requirements must be traceable. That means for any requirement, one must be able to
ascertain its source and its realization, i.e., a reason why the requirement exists and a
guarantee that the requirement has actually been implemented. Generally, analysts
construct a matrix that traces each requirement to implementation, test cases, and
sources. The source of a requirement is generally some stakeholder but might also be a
regulation or mandate.
Requirements Approval
Many organizations have a formal process of "sign-off" or approval where the customer
or project sponsor formally agrees to the requirements that have been captured. While
it is somewhat formal, sign-off must be viewed as a project milestone rather than a
formal contract. Requirements very likely will still change after sign-off. After all, the
business does not remain static; things change constantly in the business world. Project
teams must adopt a requirements change procedure that stakeholders can fall back on
when a requirement does indeed change. Naturally, the project manager must explain
to the stakeholders that a change to the requirements (either by adding, modifying, or
removing a requirement from the specification) likely will have an impact on the
project's schedule, budget, and delivery milestones.
While it is desirable for the project team that requirements are eventually "frozen" it is
not realistic. The project team should be prepared to continually manage the
requirements scope: scope is not static, it is dynamic and the development lifecycle
Conclusion
In this whitepaper, we summarized the important aspects of gathering, analyzing,
documenting, communicating, and validating requirements. The techniques provided
should serve as a foundation for your own best requirements management practices.
For more information on requirements management and applicable resources and training programs
for you and your organization, please contact us at 1.800.288.7246.
Be sure to mention value code GG02811 to hear our most current special offers and promotions.
GG02811