|
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.
|