In the continuous closedNMonths and laterNAfter one month of overtime, the project is finally extendedNThe result of the month is over. No matter what happened or whether the project was postponed or not, it is important that the project is over and all the project members can breathe a sigh of relief. I once joked with my colleague that I had another project in the failed project, and then I could avoid the same type of failure. My colleagues laughed. During that time, I never heard of my colleagues smile.
Now, with my current knowledge, I will summarize the problems in the project. These problems are not caused by one or two factors. Of course, the professional level is too low, and there is no deep content to summarize. In any case, it is a summary of the project. Here, I will summarize the problems that I think are worth learning in the project.
1.Develop a project plan
I am not sure whether I have understood the scale of the project, estimated the cost and duration of the project, and the feasibility of resources and technologies at the beginning. When I enter this project, I will be notified that3Completed in the last month. At that time, we were working on the customer's business needs. (It should be noted that the three months are decided by the company before the project starts, but it has not been estimated by the project team members based on the function and determined by the Project Manager) I don't know whether this is the case. But no matter what, the project development time is well completed before I know the project functions. is the risk of the Project High? The result is that the developer develops the development plan according to the specified time, and finds that the project scale is large, many functions are not completed on schedule, and it is difficult to complete on schedule. Not only cannot be completed on schedule, in order to catch up with the progress,CodeThe quality is not guaranteed, and some project team members have the impulse to overwrite. (Code quality is not only caused by planning, but also includes personal development experience) If it is not the strong management and control capabilities of the project manager, I don't think the project will end.
2.Development Team Stability
In the business understanding stage, not all the personnel required by the project team are in place. Entering the interface prototype development stage, the project team has recentlyNPerson. During closed development, addNAt the same time, there areNPeople leave. The project team is not stable in the early stage of development, resulting in inconsistent work progress and plan. In addition, each time you increase the number of people, you have to perform relevant training and business understanding. At the same time, personnel changes lead to different people taking over the same module, making code maintenance more difficult.
3.Requirements
In order to catch up with the project progress, the second is lack of understanding of the business, and the third is the difference in the business staff's understanding of the business. In the absence of full understanding and digestion, the project team conducts closed development. At the same time, relevant personnel are continuing to understand other businesses. All these situations lead to the occurrenceNDesign changes,ProgramNumerous changes. In addition, business changes have taken place in the later stages of development.
4.Overall Design
The project lacks the grasp of the overall design. Everyone only understands their own things and other modules. When designing, the impact and requirements of other modules cannot be considered. When there is interaction between two modules, the communication and communication between the two module owners are more important. In addition, the interaction design between modules is carried out when the development of each module is similar, and subsequent changes are inevitable. The interaction between modules may be the biggest headache for module owners. (Of course, this problem does not exist. It is also helpless, time-consuming, and the design is naturally flawed if the business is unfamiliar .)
5.Introduce third-party Technology
The introduction of third-party technologies is affected by the project progress, business functions, and resources the company can provide. . After a simple test, it will be used in the project. Fortunately, the introduction of third-party technologies has not significantly affected the project. However, we should also be aware of the risks to the project caused by the introduction of unfamiliar third-party components.
6.No strict Unit Tests
Unit Testing is necessary because each member has different experience and different code quality. It cannot be said that no unit test is performed, and each function is called. If you get the desired result, it will be successful. However, this is not enough. We seldom perform border tests, unreasonable data input tests, and so on. Finally, in the system test phase, there were many errors that should not be encountered, for example, if an empty call or error data is specified, the test progress is very slow. (No way, the project construction period is too tight)
Unfinished, To be continued ......
It's time to go home after work. Summary: continue tomorrow.