The principles of success in software project management

1 The principle of balance

When we discuss why software projects fail, we can list a lot of reasons, and there are many answers, such as management problems, technical problems, personnel problems, etc., but there is a fundamental ideological problem that is most easily overlooked, and it is also a software system problem. The last thing that users, software developers, and sales agents want to face is the balance between the four elements of demand, resources, construction period, and quality.

Requirements define "what to do", define the scope and scale of the system, resources determine the input of the project (human, financial, material), duration defines the delivery date of the project, and quality defines how good the system is. There is a balance between these four elements. If the scope of demand is very large, it is unrealistic to complete a project with high quality requirements with less investment of resources, a short construction period, and either need to increase investment or delay the project; if the demand defines It is clear that the resources are fixed, and the quality requirements of the system are very high, so the construction period may need to be extended.

One of the easiest mistakes to make about the balance between the above four elements is to advocate the words "how fast and save money", what an ideal realm? The more demand the better, the shorter the construction period the better, the higher the quality the better, the less investment the better, this is the most commonly used slogan by users.

More: Is more demand better?

The basic principle of software system implementation is "overall planning, step-by-step implementation, and step-by-step results". There can be many requirements, but the requirements must be prioritized, and the main contradictions and secondary contradictions in the enterprise must be distinguished. According to PARETO's 80-20 In principle, 80% of the problems in the enterprise can be solved with 20% of the investment. If you want to be big and comprehensive, sorry, your 20% of the secondary problems require you to spend 80% of the investment! And this is precisely what many software users cannot bear.

Quick: Can you really get up quickly?

"Fast" is what both users and software developers want. In traditional enterprises, the turnover of funds is emphasized. In software companies, the turnover of personnel is emphasized. Developers should finish one project as soon as possible before starting another project, and undertake more projects by quickly starting and ending projects. profit. However, "fast" is not something that can be accomplished by subjectively slapping the head and a regular construction period. The definition of construction period must be calculated based on the status of resources, the amount of demand and the demand for quality. After all, the software needs to be written line by line of code, and his workload is objective, and it cannot be done in a short period of time with the mental agitation of "how bold a person is, how productive a place is".

Good: What is good software?

The word "good" in a software system is the most difficult to define and the most difficult to measure. "Satisfying users" is the highest goal, you can do it, but can users afford the investment of capital and time? In hardware production enterprises, the demand for products is clear and tangible, and the quality objectives are clear and can be decomposed into various operation links, while software production does not have this feature. In hardware production, the production capacity is basically stable, the dependence on personnel is small, and the impact of quality requirements on the progress is not very different. Has a huge impact, although the quality requirements are not clearly defined by the user, so software production is quality-sensitive production.

Province: to what extent?

"You get what you pay for", this is a Chinese saying, and it conforms to the law of value. Party A hopes to invest less, and Party B hopes to reduce its own production costs, so that when Party B can only save the capital, Party B will lose money.

Facing the balance between these four elements is the manifestation of the maturity and rationality of software users, developers and agents, otherwise the success of the system will lose the most solid conceptual foundation.

The primary goal of enterprises implementing IT systems is to succeed, not to fail. Enterprises can tolerate small successes, but not necessarily small failures. Therefore, it is necessary to truly understand the balance of the above four elements to ensure the success of the project.

2 The principle of high efficiency

Among the four elements of demand, resources, construction period, and quality, many project decision makers put progress in the first place. Now the competition in the market is becoming more and more fierce. It costs more than you spend, so you must earn more." Based on this concept, software development is increasingly pursuing development efficiency, and everyone seeks more and better solutions from technology, tools, and management.

Based on the principle of high efficiency, the management of the project needs to be considered from several aspects:

To select elite members

The goal should be clear, the scope should be clear

Communication should be timely and adequate

work on motivating members

3 Decomposition principles

"Simplify the complexity and break it down" is the only way to solve complex problems since ancient times. For software projects, you can divide large projects into several small projects, and divide long-term projects into several clear stage.

The larger the project, the higher the requirements for the managers and developers of the project team, the more people involved, the more channels for coordination and communication, and the longer the cycle, the developers are easily fatigued, and the large project is divided into several small ones. The project can reduce the requirements for the project management personnel, reduce the management risk of the project, and can fully decentralize the project management power, fully mobilize the enthusiasm of the personnel, the goals will be more specific and clear, and it is easy to obtain phased results, so that developers can A sense of accomplishment.

A product development project that the author has been in charge of is code-named SB. In the early stage of the project, 5 people were invested in the project for more than 3 months. After entering the development stage, 15 people were invested in the project, which lasted for 10 months. 3 times of closed development, during this process, we have experienced tailoring of requirements, changes of developers, and adjustment of technical routes. The pressure of project team members is extremely high, everyone is exhausted, and the time to market of products has been delayed for 4 months. A very fatal lesson learned after the completion of the project is that the project should be divided into 3 small projects and released in stages to ease the pressure on the market, reduce the frustration of project team members, and improve everyone morale.

4 Principles of real-time control

In a large software company, there is a project manager with great personality. The project manager rarely talks about any management theories, nor does he have any obvious management measures, but he has successively made several large-scale projects. Software project, and the application works very well. The author has always wondered why he was able to do so successfully. After careful observation, he finally found that his management can be summed up in the word "keep a close eye", that is, every day he carefully checks the work of each member of the project team, from software demonstrations The internal processing logic, data structure, etc., are meticulous and meticulous. If there is a problem, you can't rest if you can't fix it. It was his simple measures that supported him to complete many big projects. Of course, he also worked very hard, and usually only went to rest in the early morning. We are not advocating this approach, and this approach has its own problems, but this practice shows a very simple truth: if you have no better way, you have to work harder, control the progress of the project in real time, and Put the progress of the project under your control in complete real-time.

The above method requires a high level of personal ability and sacrifice of the project manager. We need a mechanism for real-time control of the project progress, relying on a set of standardized processes to ensure real-time monitoring of the project progress. For example, in Microsoft's management strategy, "Daily build" is indeed a good method, that is, a systematic compilation and linking should be carried out every day, and the progress and interfaces should be checked by compiling and linking, and problems in progress should be found. Encourage and supervise each other.

Real-time control ensures that project managers can find and solve problems in a timely manner, and ensure that the project has high visibility and the normal progress of the project.

5 Classification management principles

For different software projects, the project objectives are very different, the project scale is also different, the application fields are different, and the technical routes used are also very different. Therefore, according to the different characteristics of each project, its management method, firm management The focus should be different. As the ancients said, "Teach students according to their aptitude" and "prescribe the right medicine". For small projects, you can't do it the way you manage big projects. For product development projects, you can't do it the same way you manage system integration projects. The project manager needs to formulate different project management methods according to the characteristics of the project. policy. For example, the following table is the author's project management policy for an application software company:


In this case, the projects are divided into order projects and non-order projects. Non-order projects refer to projects in which the company develops a standard product according to market demand, while order projects refer to customized software for a specific customer. The projects of the order category are divided into three categories: company-level, department-level and personal-level according to the scope of resources to be coordinated. Non-order categories are also divided into three categories: A, B, and C according to the estimated workload. Those with an estimated workload exceeding 720 man-days are classified as Class A, those with more than 360 man-days as Class B, and those with less than 360 man-days as Class C. The focus of different types of project management is different, from the completeness of the project establishment procedures, the strictness of the plan, the completeness of the weekly report, the strictness of the norm, the real-time tracking, whether to carry out the stage summary, whether to account for the project. Cost, whether to strictly carry out stage review and other aspects are considered to ensure the feasibility of management.

6 Simple and effective principles

In the process of project management, project managers often get such complaints from developers as "too troublesome, waste of time, and useless", which is a very common phenomenon. Of course, such complaints need to be analyzed from two aspects. On the one hand, the developers themselves may not understand or contradict their psychology. On the other hand, the project manager should also reflect on: Are the management measures I have taken simple and effective? Management is not academic research, there is no perfect management, only effective management, and project managers often try to plug all loopholes and solve all problems. It is precisely this ideal that will make project management fall into a misunderstanding and become self-inflicted. In the end, effective management could not be implemented, resulting in the failure of the project.

7 Principles of Scale Control

This principle is used in conjunction with the other principles mentioned above, that is, to control the scale of the project team, not too many people, too many people, there will be more channels for communication, and the complexity of management will be high. Managers are more demanding. In Microsoft's MSF, there is a very clear principle that the number of people in the project team should not exceed 10. Of course, this is not absolute, and it has a lot to do with the level of project managers. But personnel are "expensive but not expensive", this is a basic principle, which is complementary to the high-efficiency principle and decomposition principle we mentioned above.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324836567&siteId=291194637