Managing Requirements in a Software Development Cycle.
By Thomas Parackal, CFO
According to the Standish Group, CHAOS Report, 2000 26% of software
projects succeed. That means 74% failed! (Failure includes failure
to complete on time and/or failure to meet client requirements fully).
What are the reasons for a high rate of
failure among software projects?
Here are some:
User Input is inadequate
Objectives are not clear
Incomplete Requirements and Specifications
Frequent changes in requirements and specifications
Poor Planning
How can these problems be overcome in a
real life scenario?
Requirements management can go a long way in significantly improving
the situation. Rational Software offers a good definition for requirements
management. According to Rational, Requirements Management is a
systematic approach to eliciting, documenting, organizing and tracking
changing requirements.
To understand Requirements in the context of a Software Project,
one needs to understand requirements through the eyes of the various
stakeholders involved with that project. Who are the stakeholders
and what are their needs?
Stakeholder
Their Needs
Customers
:
Business model and Business Plans
Users
:
Bugs, Enhancements
Domain Experts
:
Subject matter experts and Industry analysts
Partners
:
Strategic markets
Software team
:
Scope well defined
The key is to optimize the various needs and synergize between
the various stakeholders to achieve maximum leverage.
The other aspect about requirements is that they seldom stay put.
If development teams dread anything, it is the fluctuations in requirements.
Let us examine a few causes for change in requirements.
Failed to ask the right people the right questions at the right
time.
The Problem being solved changed
Users changed their minds on their perceptions
Budgets are cut
Competitors introduced new technologies and features
The
IEEE list of Software Requirement qualities lay down that Requirements
must be unambiguous, complete, correct, consistent, traceable, modifiable,
understandable, verifiable, ranked for importance and stability.
Are you considering outsourcing software
projects?
Here is something to consider.
Outsourcing is indeed a great idea and it makes a lot of business
sense. And with the power of the Internet, it works perfectly well.
Nevertheless, if your requirements are not managed well, even the
best software team will fail to give you what you want.
Requirements management is critical throughout the lifecycle of
the software project. It is often misunderstood in its scope and
significance. Did you know that the development methodology used
by the developer plays an important role in requirements management?
You will be surprised how much it will reveal to you how your requirements
are being met.
Check out the 6 Tips to
Evaluate your Development Partner/Solution Provider.