What makes software projects succeed?

Summary: More than 50% of software projects fail today. Studies conducted by major research groups prove this. Why is this so? Are there any safety measures that can be taken to prevent this from happening? Our company has worked successfully with web development projects over the past four years. Read more…

“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 Hardworking, Focused Staff 2.4%
11 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%
11 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 management

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.

Continue reading...