Software development is a complex system engineering that involves various factors. In actual work, various problems may often occur, or even failures. How to summarize and analyze the causes of failure and draw useful lessons is the key to a company's success in future projects.
The requirement content is unclear and cannot be fully grasped. This is a problem we often encounter. On the one hand, due to the lack of IT knowledge of the customer (demand side), they often do not know what kind of system they want to develop at first, or they are too lazy to sort out the system, the demand is constantly raised and changed, so that the implementers are struggling. On the other hand, due to the lack of industry knowledge and the low level of design personnel, the implementer cannot fully understand the customer's demand description, but does not strictly confirm it, the system is often designed in a way that is taken for granted, and the result is a re-engineering. Therefore, the demand analysis must focus on the consistency of understanding and understanding of both parties, and confirm the requirements one by one.
It is very important to estimate the number of workers in software development. It is necessary to combine the development stage, personnel productivity, work complexity, historical experience, and other factors, quantify some qualitative content. I do not have enough knowledge about the importance of work numbers. It is the most common problem that I often use my head shoot. In addition, software development often involves some invisible workloads, such as the training time of personnel and the review time of each development stage. inexperienced project managers often miss out. At the same time, there are also some typical reasons: (1) the customer and the company's upper-layer pressure compromise on the workload estimation. For example, if a customer threatens a developer who requires less labor, the company must cut costs and shorten the construction period due to business difficulties. In the end, it can only compromise and hope that employees can work overtime.
(2) The designer is too confident or out of self-esteem, does not pay enough attention to some technical issues, or is worried that estimation is often ridiculed.
(3) Over-experience. With past successful experiences, I thought that the project was almost the same without a specific analysis. I did not expect that the project may be larger, the project team has more members, different quality, and many new employees, it is also a new industry.
If the project organization is too small, every company wants to complete the project at the lowest cost. insufficient manpower is a problem for most projects. Another case is that the technical level of the project team members cannot meet the project requirements. The company can only provide the assigned technical personnel or the project manager's mistakes, the technical level is not explicitly required in project work estimation, and it is hoped that the employees will make their own efforts. Some project managers believe that high-level technical personnel are not required when the project starts.
If the development plan is inadequate and there is no good development plan or development goal, the success of the project is impossible. The development plan is too rough and mainly reflected in the following aspects, the interface between members is unclear, so some work is not taken responsibility at all.
(2) The definition of the submitted results in each development phase is unclear, and whether the intermediate results have been completed or not. The result is that a large amount of work has been accumulated in the later stages of the project.
(3) No milestones or checkpoints are specified in the development plan, and no design review period is specified.
(4) The Development Plan does not specify the progress management methods and responsibilities, leading to the failure of normal progress management.
Insufficient design capability is one of the reasons for project failure. On the one hand, due to the failure to correctly evaluate the technical difficulty, the design task was handed over to the personnel not commensurate with the requirement level, resulting in the failure to implement the design results. On the other hand, with the increasingly common phenomenon of resource outsourcing, some companies often rush to transfer part of the projects with the target to other cooperative companies due to a tight schedule, without careful evaluation, the design capabilities of these companies will have an impact on the entire project.
The Project Manager's management capability is insufficient to grasp the progress in time. The project manager does not know the status of the project, and the subordinate staff report the news and do not report any worries. The project manager is afraid to report the problems and then bother himself. Progress Management must collect project management data at any time. Developers are always worried that management will increase their workload and are unwilling to cooperate. Administrators do not even know what data to collect.
Because no regular project review reports were conducted, on the surface, the progress was smooth and the crisis was actually hidden. Management Personnel always trust their subordinate reports without verifying them.
When a serious problem occurs, the management personnel fail to reevaluate the requirement analysis results, estimate the number of jobs, and design results based on the current situation, and then rush to take measures such as head-to-head and foot-to-foot measures, making the problem more serious.
As mentioned above, there are many causes for project failure, which are hard to be listed one by one. We have no space here to propose countermeasures to avoid these problems, but by listing these reasons, we hope to resonate with readers.