For an IT project to be a success, it must meet three criteria:
- On-Time Delivery : it must be completed on time,
- Cost Effective: it must be completed within budget, and
- Functionally Robust: it must provide the full functionality originally promised.
The IT profession has been conducting IT projects for over thirty years. Yet about 75% of all IT projects fail to meet one or more of these criteria. Why?
The reasons IT projects fail are listed below, more or less in the order of frequency of occurrence:
- Inadequate or inaccurate specifications
- Changing specifications
- Insufficient user support
- Bad estimates of required resources
- Technical failure
- Bad management of the project
At first glance it seems that if in IT project fails, it is the fault of the IT department and the IT people. Without question this is true some of the time. Technical failure is clearly an IT failure most of the time. (Sometimes IT is forced to use questionable technology by the rational demands of the competitive environment or by irrational demands by users to have the best and latest.) Bad project management is also an IT failure much of the time. The IT community is aware of these failings and is making substantial progress in correcting them.
But there is more here than meets the eye. IT cannot do it alone. Substantial participation by the customer and end users is essential to the success of every IT project. Let’s look at the role of customers and end users in a typical IT project in terms of the specific tasks that need to be done in each phase of development.
- User requirements specification – Customer should do most of the work, with guidance about costs and technical issues from IT.
- Functional design – Users should lead this effort, with some participation by IT.
- Technical design – IT should lead this phase, with some input from end users, as technical considerations suggest or require change in functional design.
- Coding – No user participation required.
- Testing – Users must design the test cases, provide the test data and analyze the test results. This is a larger effort than most people realize.
- Training and documentation – While IT must create the technical documentation, user documentation of system functionality is best done by users.
- Implementation – The users must work in parallel with IT to install the new business processes required by every new system, even as they train the ultimate users of the system.
There is almost no reliable data on how much user time is or should be involved in these activities, but we in the IT community know that the requirements are large. Expert’s analysis tells that user work time in an application development project should be from 25% to 90% of IT time, depending on the nature of the project.
Any project received as much user time as it required, the gap is usually closed by IT people doing the users’ work. This guarantees project failure:
The failure is
- To the extent that IT people specify user requirements and functional design, the new system and its associated business processes reflect IT’s view about how the business should be run. This is a bad idea. End user should involve themselves in specifying the user requirements and functional design because they know what they want.
- Users often change requirements during the project, as they begin to understand the ramifications of the new system, or as business needs change.
- If the users do not take the lead in the testing, the wrong things will be tested using the wrong data – a guarantee of a difficult implementation and needless maintenance costs.
- When IT people write user documentation it is often unintelligible to the users; when the users can understand it, it often does not tell them what they need to know.
The overall effect of this transfer of work from end users to IT is to degrade performance with respect to all of the key criteria of success: Projects are late because
- IT has not allocated people to do the work that end users should be doing, delaying the IT work they should be doing.
- Changing requirements magnify the problem.
- Projects are over budget for the same reasons.
- System functionally is compromised because the IT people do not know as much about business needs and business processes as the end users know.
Solution to the Problem:
- If you the CEO or COO, do not authorize any project unless the user commits in advance to providing 50% of the work days budgeted for IT participation.
- If you are the CIO, CTO or Project Manager, refuse to start a project without the user’s commitment to adequate user participation.
- If you are a developer, don’t start the project until you understand all the functionality of the modules you are assigned to develop.
- If you are a tester, don’t start writing the test cases until you understand all the functionality of the modules you are assigned to test and the customer agreed to provide the real test data.
The biggest IT failure is failure to get the users do their jobs. Let the end users participate in most parts of the development life cycle and as they know what they want and the project will be more successful.