 |
 |
 |
 |
| How do you
avoid project failure? |
Learn to avoid some of the
typical causes of project failure by investing in clearly outlining
the requirements for all parties concerned. Outlined below are important
items to keep in mind for successful requirements capture and recording:
 
1. There are three levels of requirements.
 |
a. |
Business Requirements - High level
objectives of the project which are recorded in the Vision and Scope
Document |
 |
b. |
User Requirements - Task and facilities
available to the end user recorded in the Use Cases. |
 |
c. |
Functional Requirements - Detailed
listing out of each behavior that the software must exhibit. This
along with the quality attributes and other non-functional requirements
is documented in the Software Requirements Specification (SRS). |
 |
2. Involve the end-user
or customers as much as possible during the requirements capture stage.
Identify various user groups and one representative individual from
each group for inputs regarding their specific requirements. They
could also review prototypes and the SRS to ensure completeness and
effectiveness.
 
3. Ensure that the requirements are quantifiable and measurable. Areas
that are unclear may require more detailed analysis or even the development
of a prototype. Developing Test cases early also help reveal any gaps
in the requirements capture. Verify the completeness of the requirements
by formally inspecting the documents generated.
 
4. Prioritize Requirements by their relative importance. This will
help weed out high cost-low value functionality. It will also help
in making informed and critical decisions when faced with time/ resource
and functionality tradeoffs. Identify and remove any functionality
which will not be used or which do not help meet any of the business
objectives.

5. Ensure that the project scope is clearly defined in the Vision
and Scope document. Expect some amount of requirements growth and
buffer for it, since rarely is the project deadline changed, additional
resources provided or any existing functionality deleted to compensate
for it. Effectively using requirement gathering methods and base lining
the requirements specifications also helps avoid scope creep. All
parties involved must realize that future additions will add to the
cost.
 
6. Establish and enforce a clear and realistic process for change
management. Prioritize the proposed requirement changes against the
requirements yet to be implemented. Ensure that each change and its
impact are sufficiently analyzed to avoid unforeseen complexities
and slipping project schedule and deadlines. Analyze associated costs
and benefits and all the associated tasks and resource impacts. Also,
be disciplined about following suitable version control policies to
ensure that all the project participants are working on the latest
requirements.

7. Finally, while it is important to have a complete set of requirements
to start design and development, it is also important not to get bogged
down at this stage. After a set of requirements has been fully identified,
development can begin on this while unclear requirements continue
to get analyzed and clearly defined. The iterative model or phased
approach is better than the waterfall model in these cases. |