Surviving Software Projects
"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
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 and % 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 |
0 - 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 and % 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 kvcinfo, we follow established processes that
are approaching SEI CMM level 3 in maturity. |