Success/failure criteria for software projects
Introduction
What are the criteria for successful or failed software projects? Everyone may have their own opinions on this. How can a software project be successful? What factors need to be met? For example, outstanding developers, formal development processes, meticulous requirements, UML Effective risk management, comprehensive planning, clear business objectives, frequent assessment and review. I remember that when I read "software technology", I was deeply attracted by the novel and unique ideas in the book. I considered the projects I had experienced and found that many of them confirmed the ideas in the book. The software process emphasizes the role of people, but it does not seem to change the status of Software Engineering in most people's minds. Many PM I am still happy to develop a "plan" and want to import some formal" Process ", Do everything possible to carry out" Risk Management ", emphasizing" clear needs "; many designers hold UML , Draw a variety of" Digoal "...... However, what happens in the real world may confuse us or even surprise us.
A study
Has an Australian Liya's Professor studied400After software projects in the United States, Australia, and Chile, I came to some amazing conclusions, roughly as follows (italic part is my opinion ):
1,Most projects without a schedule are successfully completed.
This is indeed surprising. projects that do not have plans can be successful, either with relatively good team members or with relatively small projects that are easy to achieve.
2,Requirements are required for project success, but they are not necessary in the early stage of the project.
The sooner we expect the better ......
3,Without clear requirements, projects can often continue successfully.
As far as my experience is concerned, it is normal to have no clear requirements. In particular, when making products, I often do not know what features the final products should have. For specific projects, I expect the clearer the requirements, the better. However, requirements always change,TeamThe customer's feedback should be promptly adjusted.
4,The choice of demand methodology is not important,UMLNo help.
I amUML Love, like to useUML To express my thoughts, design, and communicate with the team members. However, it turns out that,UML It is just a tool for some people (people who like visualization charts. For express needs,UML It is useless,Use-case digoal There are several use cases (elliptical, wired, and role). How much do you know about the requirements? Or read the text description.Use-case Comparison is direct and accurate. But I believe thatUML Express design is a good practice.
5,Using a development methodology is an element of success, especially when it is suitable for our applications.
Indeed, the process that suits us is the best process. Many enterprises in China useCMM/cmme ,6 Sigma ,RUP EvenXP But most software companies do notSS . Even if some enterprises obtainCMM/cmme Authentication, which is often left on the surface during execution.
6,Few projects use risk management, and these projects seldom manage their risks.
This is true, but it does not mean that risk management is not worth mentioning. It is still very important. Companies must avoid risks, and projects must also avoid risks.
7,Few of them insist on frequent evaluation and review, which is almost always done in successful projects.
In my opinion, evaluating is a specific way to avoid risks. For example, the purpose of evaluating the architecture design is to minimize the possibility of project failure technically. However, this evaluation and review should be carried out in a good atmosphere and change in a timely manner.
8,......
The study also raises predictions (which seem to be well known ):
- success comes from a culture that investors and deals with problems
I agree most.
- The vision for the project (its business goals) must be shared among all project personnel, especially the Project Manager
-
- Project managers shoshould be involved in the estimation Activity
- project managers shoshould be good at customer and developer communication; they need not be good at the technology
This may be controversial. Is it necessary for the project manager to be proficient in technology?
For more information, see the original article..