Planning a software project part 2

A software developer asked me: “Why so many software projects still failed although the project managers have planned them carefully?

Answer: There are reasons that cause software projects to fail and most are depending on the project managers' skills. In non-software projects, the managers plan the projects but in software, planning is a team activity not individual. This is a common misconception in many training programs where people assume that all projects are the same. If the manager plans the software project himself without any team members participate then only he knows how the work must be done. Software is “Knowledge work” NOT “Physical work” therefore it must be planned differently because it is impossible for team members to guess what is on project manager's head when he plans the project.

Some people believe that if they write everything on project plan than it will be implemented as the way it is written. The fact is no matter how good is the writing, each team members may understand it differently; and their implementation may not be what the project managers want. Sometime team members may disagree with the plan and implement the way they think it should be done instead.

In “Knowledge work”, the project manager needs to communicate, exchanges ideas, and obtains agreement on everything with team members. Managers cannot give direction, issue instructions, and expect developers to follow without questions and implement as they are written. In software, team members need to be involved in the planning of the tasks that they will have to do. Most developers are highly educated people, they are trained to do their works and know how to make the right decision on what is best for the project. That is why team's participation is important when it comes to determine what and how they should do things. They should be able to voice their opinion on how long would it take to complete their tasks rather be told of how much time that they have.

In other non-software projects, the project plans do not change much so it is easy to implement accordingly. However, software projects often change and no matter how good you plan, no one can predict the future. The project plan will never reflect the reality because things will change therefore project plan must change too. If you stick with the original plan, you will fail. That is why people keep asking why so many software project failed even they have planned them carefully.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University