|
"A Standish Group research report shows a staggering 31.1% of
projects will be canceled before they ever get completed. Further results
indicate 52.7% of projects will cost 189% of their original estimates"
"On the success side, the average is only 16.2% for software
projects that are completed on time and on budget. In the larger companies,
the news is even worse: only 9% of their projects come in on time and
on budget. And, even when these projects are completed, many are no more
than a mere shadow of their original specification requirements.
Projects completed by the largest American companies have only approximately
42% of the originally proposed features and functions. Smaller companies
do much better. A total of 78.4% of their software projects will get deployed
with at least 74.2% of their original features and functions."
The information given in the following tables collates the responses
to a poll conducted by the Standish Group.
Project Success Factors % of Responses
1. User Involvement 15.9%
2. Executive Management Support 13.9%
3. Clear Statement of Requirements 13.0%
4. Proper Planning 9.6%
5. Realistic Expectations 8.2%
6. Smaller Project Milestones 7.7%
7. Competent Staff 7.2%
8. Ownership 5.3%
9. Clear Vision & Objectives 2.9%
10. Hard-Working, Focused Staff 2.4%
Other 13.9%
Project Challenged Factors % of Responses
1. Lack of User Inputs 12.8%
2. Incomplete Requirements & Specifications 12.3%
3. Changing Requirements & Specifications 11.8%
4. Lack of Executive Support 7.5%
5. Technology Incompetence 7.0%
6. Lack of Resources 6.4%
7. Unrealistic Expectations 5.9%
8. Unclear Objectives 5.3%
9. Unrealistic Time Frames 4.3%
10. New Technology 3.7%
Other 23.0%
These mind boggling statistics maybe surprising, especially to a prospective
client, but having established that more than 50% of software projects
fail, let me go on to say that software project survival is not a miracle
or a mere accident. Carefully followed methods and processes can ensure
that projects do succeed. Let's take a look at what they are.
Software projects are inherently complex, risky and require careful planning.
What kind of planning? Planning software development, estimates, staged
development, requirements capture, and risk and change management control
procedures, business case studies, user interface prototypes and overall
project control.
Proper planning ensures that the project doesn't move away from its targeted
goals while the customer gets a clear definition of the project and is
in the know of the project status and has ready access to project deliverables
at any point of time.
From the statistics quoted at the beginning of this article, we saw clearly
that inadequate capturing of customer requirements form one of the most
common reasons for project failure. Let's take a microscopic look at some
of the bare necessities involved in a software project.
Requirements capture:
Most of the time, clients are not really sure about what it takes to
transform their business ideas into reality. They need help in defining
their business needs and mapping them to functionalities and applications
necessary. This is where an organization that captures requirements from
the client in a strategic manner will score heavily in vendor selection
criteria.
Capturing client requirements isn't as simple as asking the client to
describe his needs and then labor on developing the necessary features.
Beginning with a thorough understanding of the business needs, how and
where the functionality being developed will help in satisfying these
needs and then communicating these studies to the client and narrowing
down on a set of features based on which an estimate regarding costs and
time are made. This is where business analysts and customer relationship
managers play an important role.
Once the project is embarked upon, and project planning begins, requirements
capture team analyses the client's business needs and documents them in
the form of a Vision statement and a software requirement specification
document
A user interface prototype that mocks the functionality that the final
application will possess is another important part of the requirements
capture stage.
A process-centric organization:
Well-defined processes play a critical role in the discovery, invention
and implementation stages of a project. Although the word 'process' may
be an anathema to a few, statistics have proven that following a clear
development processes, stringent quality assurance processes, risk management
and change control procedures help detect problems as early as possible.
Project visibility:
A vision statement outlining the broad objectives, establishing clear
milestones, conducting regular technical reviews and measurements ensure
that the project is visible to the client at every stage of development.
Staged delivery:
Projects that define deliverables in phases or stages identify risks
and constraints early on and are able to plan and implement counter measures
with greater success. Customers who receive deliverables regularly during
the project gain trust more easily than those who are in the 'dark' and
are awaiting the end of the project for a whole set of deliverables that
may be delivered in whatsoever form!In a staged delivery project, the
functionality is developed and delivered in stages thus ensuring that
the most important function is delivered at the earliest.
A phased delivery ensures the following:
- Tracking code growth
-Tabs on major milestones and deliverables
- Reduction of risks early on in the project
- Emphasize project planning and risk reduction
- Reduce the possibility of estimation errors
- Availability of various options
- Project visibility to customers and upper managements
Quality assurance, risk management, change control procedures and well-defined
and well-executed releases are some of the other factors that make sure
that a project can succeed. Usually, a quality control manager is assigned
to the project at the beginning and works along with the project leader.
The various testing methods and software necessary are also defined and
submitted in written form at the early stage of the project.
Risk management and change control:
Every project is associated with a fair amount of risks, and sometimes
not just in terms of schedules or budget or deliverables. Projects that
don't plan for handling risks are hit by sudden surprises and are left
floundering with promised schedules and deliverables and can end up losing
the client. Success at risk management means creating a plan to assess
the risks, the 'which', the 'what' and the 'why' of each risk identified
and planned for.
A corollary of risk management is change control. A change control board
in a project consisting of upper management, marketing team members, and
major stakeholders evaluate changes proposed and make a decision on whether
to implement them or not.
And finally a software release stage where a release checklist is signed
off ensuring that the final deliverable is defect-free will ensure that
the final product that reaches the end user works fine without any glitches.
We've elucidated a few survival guidelines that need to be kept in mind
when outsourcing a software project to a development organization. Software
projects aren't just about processes and requirements, a committed resolve
to do the best on a project is a factor that does play a crucial role
too.
At Stylus Systems, we follow established processes that are approaching
SEI CMM level 3 in maturity. Please click here to read more about our
processes and project management tools.
|