I had the honor to have dinner with three teachers yesterday. They were not only good teachers, but also experienced in software development. The three were project managers in China, Japan, and Singapore, I have rich experience and unique insights on project development and management. I have benefited a lot from their conversations. To sum up, share with you.
I, What qualities should the project manager possess?
In the software development process, the project manager plays a very important role. It can even be said that the advantages and disadvantages of a project manager directly determine whether a project can be successful. So what qualities should the project manager possess?
The most important thing is probably unexpected. It is not the development capability or technical capability, but the management capability. In many foreign companies, the project manager is not a computer specialist, many of them are MBA, and they may not be very proficient in technology, but they can clearly view the current project situation and progress and grasp the progress of the project, when appropriate, ask the people in the project team to do the work they should do, and properly allocate the personnel according to their respective characteristics and current needs, these may not be done by programmers who only learn programming.
However, a common problem is that programmers cannot be convinced of project managers, especially when project managers are not proficient in programming, programmers often refuse to accept the opinions of the project manager on the grounds that "he doesn't know programming", which directly leads to management difficulties.
Therefore, a project manager should also try to convince the members of the project team of his or her own understanding of the project, instead of using technical knowledge, or you can analyze the problem. For example, a project manager points out the problems that need to be solved urgently in the current project, which is not noticed by programmers, the Project Manager can establish his own authority at one time.
In addition, the expression ability of the project manager is also very important. A teacher mentioned that it is not simply enough to convey his meaning to the members of the project team. A passion is needed, with expressions, gestures, and all the means that can be used, you can deeply understand the current situation and the work to be done in the future, and differentiate the primary and secondary tasks so that you can carry out your work with purpose, that is very important.
It also involves the personal charm of the project manager. If he can be a friend at ordinary times, be a leader at work, and be fair to others, if you can give appropriate encouragement and praise, everyone will feel very good and work efficiency will not be high.
II, Is CMM really useful?
At present, many software enterprises in China have passed CMM certification, but the implementation is not good from the actual situation. On the one hand, because the company does not provide relevant training to all employees, you are not able to recognize the benefits of using those charts. Moreover, you can enter complex charts, training is also required. Therefore, we should not only perform authentication for the purpose of being authenticated, but should aim at improving the management of the enterprise. If that is the case, it may be better.
III, How to implement Software Engineering in the project
Generally, Japanese enterprises adopt waterfall development, and documents at various stages are very well-developed. In addition, Japanese enterprises know what kind of work should take more time. They do not focus their time on coding, but on Demand Analysis and Design in the early stage. Indeed, this is a large-scale and formal project model. However, this is not a good project. We often see that, in Japanese software enterprises, everyone has to face the changes from the Japanese side over and over again. At this point, we should have a change management. However, the current software engineering model does not handle the change very well, so the final result is that many programmers work overtime every day, however, the project still cannot be completed on time, and the final responsibilities will be put on the Chinese side.
In Singapore, enterprises are similar to those in China. In many cases, there is not enough time for detailed preliminary work. Therefore, we all perform demand analysis and design while coding. Such a working mode also has a big problem, that is, how to handle changes.
The current eXtreme Programming proposed by Martin folwer is aimed at the current frequent changes. Maybe we should adopt this method in some projects.
In just a few hours, I felt I had learned a lot. A Japanese once said that there is an urgent problem in Chinese enterprises that young people cannot learn more from older people. On the one hand, because older people do not learn persistently, the level is not much different from that of young people. On the other hand, young people do not have a modest heart, can seek advice modestly. I think there is still some truth. I hope everyone can learn more from their predecessors.