Project success is a combination of several factors. Rushing through the initial build up phase of the deal is the most common mistake that leads to project failure. Usually the initial phase is the only period when both the supplier and the client are on equal footing and are able to lay down the mutual terms clearly. If the deal is inked at this stage carefully with clear documented terms on how to deal with requirements, changes, conflicts, mistakes, etc, then the project is highly likely to become a success. If the discussions are rushed, there will be a high unsafe amount of optimism from both sides that nothing will go wrong. And eventually when mistakes or lapses happen from either side, the project starts to be in trouble.
Definitely a thoughtful subject. Thanks for raising. I do not think any company or professional exists without a single failure and do not believe we cannot live without failures. But, of course, we must be learning from mistakes and keep ourself away from similar mistakes. Question: Is it Supplier’s mistake? It depends on type of projects and types of clients. Client should be knowing atleast 60% of what they really want and should be able to communicate to a second person effectively. No any more qualities needed from client’s end. Question: How to over come Supplier’s mistake and make the project a success? Well, not a MINOR topic. I will try to answer it later and now let me comment on MAJOR issues. Also, no any business exists without customers. So let us do not think issue is with ‘customer’. Question: Is it Client’s mistake? Unfortunately, if we analyze failed projects in any company, we will be forced to conclude it as a mistake from company itself eventhough the factors differ. It can be a communication, architecture design, managerial, development or a testing disaster. Question: How to overcome? Again a big topic but let me try to clarify quickly. “Closely working with the developer” is a new trend in software development process. Technically, we call it as ‘Agile’. With the agile methodology variants (Scrum, Extreme Programming, Iterative, AUP, etc.) we have overcome most of the ‘traditional issues’ already. Anyway, for the success of a project, my two cents will be: Depends on size of the project/company, choose: (sorry, not in order) * A Structured project execution methodology * Excellent Communication (Do not ever let your customer wait for anything) * Make prototypes/use cases before development. Make sure no any point is missing. * Systematic Project Management – Planning is everything * Good Architecture – Let the words and pictures speak to make stakeholders think alike * Train stakeholders in case of new technology – save time. * Understand the requirements well – Spend your majority of time here only * Support * Always think from a customer’s eye * Follow standard practices – Save Time. * Keep the customer involved in all the activities. So that we can identify requirement issues in advance and rectify them early. * Quality – Let testers work more hours than Developers * … and at the end. Do a postmortem of your project for the success of upcoming projects.
I think making prototype is a great way to communicate to client. This I call as a proactive supplier reaction to avoid future conflicts. If we look at some of the recent projects we executed, clients really appreciated our prototype approach. Although its bit of overhead for supplier, its a great way to make both ends happy eventually. Also I feel many times quality is affected because testers doesnt have overview of the project. I think atleast one person ( depending on size of the project) should be involved even in the requirement gathering phase or atleast project manager should brief the project to test lead.
Got an interesting link – Why Software Projects Fail It says: 25% of projects failed due to functionality issues, 15% of projects failed because of high cost variance, 20% were canceled during delivery, and 18% were unsuccessful because they were substantially late. Because technology projects, more specifically software implementations, require the effective management of human resources in order to meet the target schedule, cost and quality requirements, it is reasonable to assume that ineffective resource management is a leading contributor to the failure of technology projects.