Requirements Management Tools
When people talk about "requirements management" or "requirements management software", it is
is still somewhat misunderstood within software development. The lack of
an unambiguous and continually current definition of requirements is a major cause of project catastrophes. Problems are least costly
to correct when they are detected early in the development life cycle particularly when the correction involves changes to the software
architecture. Although, intellectually, most IT practitioners understand the value of developing and maintaining clear and detailed
requirements throughout a project's life cycle, actually achieving this
has been difficult.
Virtually all development projects begin with at least some notion of
a definition of requirements. However, in too many cases the
requirements definition activity is very informal (e.g., hallway conversations, emails, phone discussions). Of those teams that do begin a
project with formally defined requirements, those projects are generally incomplete and inadequately managed or uncoordinated. More
importantly, once requirements are captured, the documents in
which they are housed generally remain static. That is, they represent
the requirements as understood and defined at a particular
point in time, usually early in the project life cycle. The development
itself then proceeds into implementation using this static set of
requirements during what could be thought of as a "quiet period" for
the development team since the requirements are essentially frozen.
While this might initially seem like a logical approach to requirements management, the real world doesn't work this way. Change is
constant and the one absolute in software development. Permitting
changes to requirements in an uncontrolled manner throughout the
development life cycle invariably results in confusion, missed schedules,
and cost overruns. Frustration occurs among end users, analysts, developers,
and managers alike. Laments such as, "Users
keep changing their minds," "The application doesn't meet our
needs," and "This project is taking too long and costing too much"
are all too common.
Requirements management has always been important but is now
being increasingly recognized as vital to software project success as
businesses rely more and more on software for conducting business and mission-critical
functions.
Rework is responsible for over 40% of a development organization’s total spend - time and money that
organizations cannot afford in today’s highly competitive environment. Most of this rework
effort focuses on correcting requirements management informnation which could cost over 200 times
as much as defects that are corrected close to the point of creation. Managing your requirements and getting them
correct from inception is imperative.
Just what is involved in a formal requirements management
process? The process elicits stakeholder needs,
captures and communicates requirements to all team members, prioritizes and organizes requirements, and manages changes to
requirements throughout the project life cycle. Formal requirements
definitions and management are employed in many technical disciplines
to a much greater extent than has been in evidence in the IT
arena.
You can argue that Word documents, email, phone calls, and
stakeholder meetings alone are adequate for managing
requirements. This approach doesn't guarantee
requirements definition that is communicated and understood by all parties. More importantly, it
doesn't lend itself to managing the inevitable requirements changes
that will occur throughout the life of the project. The goal must be to
embrace and manage change, not to prevent it. In today's world of
complex, multitier distributed systems and diverse and distributed
development teams coupled with the mission or business-critical
nature of software applications and relentless time-to-market
pressures, casual, ad hoc management of requirements is becoming
increasingly inadequate and ineffective.
Requirements analysis is a colossal initial step in
software development. And, managing changing requirements
throughout the software development life cycle is key to developing
a successful solution, one that meets users' needs and is developed on
time and within budget. A crucial aspect of effectively managing requirements
is communicating requirements to all team members throughout
the entire life cycle. In truth, requirements management benefits all project stakeholders, end users, project
managers, developers, and testers by ensuring that they are continually
kept apprised of requirement status and understand the
impact of changing requirements specifically, to schedules, functionality, and costs.
Requirements management has always been important but is now being increasingly recognized as vital to software project success. The goal must be to embrace and
manage change, not to prevent it.
Requirements management is not limited to only software design
and implementation tasks. Creating test plans and test cases based on requirements allows
testing the intent of the system, not just the code. When test
planning occurs in parallel with development, the time savings can
be significant.
Many companies have software management
tools and processes in place than organizations who have adopted formal requirements management.
However, uncontrolled requirements changes can have as great an impact on the
success or failure of a project as the lack of version control or
code change management. Effective
requirements management should span the complete life cycle from
initial concept definition; through modeling, design, and analysis;
through coding; through testing; to ongoing maintenance and
enhancements. IT shops that do not have effective requirements
management processes and tools in place are exposed to the risk of
serious and costly project delays and rework.
The Gatherspace experience is a prime example of a vendor offering tools for IT
organizations to support formal requirements management processes.
Gatherspace offers a powerful solution for requirements management.
Gatherspace.com facilitates better communication, enhances
team collaboration, and reduces project risk. A key feature of Gatherspace
is its intuitive design, ability to connect and interlink features, requirements and use cases.
Since requirements are quite often proposed, updated, reviewed,
and modified by a wide range of technical and
Requirements management is not limited to only software design and
implementation tasks.
Even if you’ve done a magnificent job gathering your project’s requirements,
automated assistance can help you manage them as development progresses.
Here are some requirements management tasks these tools can help you perform.
Manage versions and changes. Your project should define a requirements baseline,
a specific collection of requirements that a particular release will contain.
A history of the changes made to every requirement will explain previous
decisions and let you revert to a previous version of a requirement if necessary.
Store requirements attributes. You should store a variety of information, or
attributes, about each requirement. Everyone working on the project must be
able to view the attributes and selected individuals must be able to update
their values. Requirements management tools generate several system-defined attributes, such as date created and version number, and they let you define additional attributes of various data types. Consider defining attributes such as author, person responsible, origin or rationale, release number, status, priority, cost, difficulty, stability, and risk.
Link requirements to other system elements. Tracing individual requirements
to other system components helps ensure that your team doesn’t inadvertently
overlook any requirements during implementation. You can define links between
different kinds of requirements and between requirements in different
subsystems. When analyzing the impact of a change proposed in a specific
requirement, the traceability links reveal the other system elements that
the change might affect.
Track Status. Tracking the status of each requirement during development
supports overall project status tracking. If a project manager knows that
55% of the requirements allocated to the next release have been implemented
and verified, 28% are implemented but not verified, and 17% are not yet fully
implemented, then he or she has good insight into project status.
View requirement subsets. You can sort, filter, or query the database to
view subsets of the requirements that have specific attribute values.
Control access. You can set access permissions for users. Web access lets you share requirements information with all
team members, even if they are geographically separated.
Communicate with stakeholders. Most requirements management tools let
team members discuss requirements issues over email. Email
can notify the affected people when a new discussion entry is
made or a requirement is changed.
A requirements management plan is piece of the project management plan.
Generally, the purpose of the requirements management plan is to ensure customer and developer have a common
understanding of what the requirements for an undertaking are. Several subordinate goals must be met for
this to take place: in particular, requirements must be of good quality and change must be controlled.
The plan documents how these goals will be achieved. Depending on your project standards, a variety of
sections might be included in your requirements management plan. Some examples are:
1) Introduction to RM and document overview
2) Document scope
3) Issues affecting implementation of the plan, such as training on the RM tool
Another way of looking at the requirement management plan is that it's a contract or agreement among
the project team and the customers describing how you will manage the requirements process. One process is
using the traditional requirements management approach which is having a functional requirements document. A more
modern approach to requirements management is to utilize the Use Case method.
If you ever have the opportunity to work on a high budget project where there are several business systems analysts
from different vendors, things can get ugly. You could potentially having consultants using different formats to manage
their requirements. Having a requirements management plan creates a uniform method and documentation template for
documenting requirements.
There are a plethora of requirements management tools on the market of different shapes and sizes. Some differentiators are hosted v. non-hosted,
price, use case functionalities and integration in test cases and bug tracking. We have evaluated a fair amount of these
requirements tools and found the following to be very beneficial.
Requirements Management Tool 1: Gatherspace.com
Requirements Management Tool 2: Accept360
Requirements Management Tool 3: Rallydev.com
Requirements Management Tool 4: Requisite Pro
Requirements Management Tool 5: Doors
|