Software development teaches us that unplanned software development is an unpredictable outcome. Most project managers write on their resumes: Many years of extensive software project management experience, but: Don’t know the history of man is bound to repeat it, in the actual development process, the failure again and again, that the so-called software project management experience is just a game again and again to “close” hell, such as the current living situation of programmers, often at the expense of the developers, the sacrifice of time, for the end of the project. Therefore, without a good software management mechanism, we can not imagine what the software developed is like.

So how to improve our software development management, a convenient way is to “respect common sense, respect the lessons of history”, in software project management, there are a lot of principles and experience worth us to learn and reference.

Planning principles

Without a plan, you wouldn’t know where to start. Plans tell you what to do and when. Without a plan, you wouldn’t know what you need. Many software managers tell employees what to do and roared off, without a plan, because there is no plan or plan is too rough, unrealistic, many projects to a third or half of their time is spent on the rework, because the plan is missing one key figures, projects may fail, a detailed plan, Be detailed enough for developers to understand.

For developers, setting a goal orientation is the best way to fully mobilize their work enthusiasm, and the results of each task stage can maintain the work efficiency of employees at a higher level, because the short-term goals are always easier to see and achieve than the long-term goals. To do this, make a plan and make it goal-oriented (push the project master plan through specific task plans)

The principle of Brooks

To add staff a project has been lagging, may make the project more lag, because as a new employees, training, communication path between the familiar environment and personnel increase, forcing sharp decline in work efficiency of the project, and a decline in the efficiency of communication needs a lot of overtime to make up for, and the overtime will be decreased work efficiency caused by fatigue, Meanwhile, costs keep rising. Many project managers complain about the urgency of time, but the urgency of time on many projects comes from managers’ unthinking and irrational claims of credit that do not fully account for the diversity of developer capabilities.

Principles of Acceptance Criteria

We are often confused about the appropriate outcome of a task. Not quality developers often hurry with experience, and the pursuit of perfect developers spend too much energy on the task, and thus often thankless and this is due to no acceptance criteria, no acceptance criteria, you can’t know you want to undertake the task of need a what kind of result, need to be a what kind of quality standards. In many cases, you’re so intoxicated with your hard work that it’s counterproductive to your goals and results. For the project manager, only by establishing acceptance criteria for each task can we strictly control each quality level and understand the progress of the project.

Default invalidity principle

Do your project members understand and agree with the scope, goals, and strategy you specified for the project? Do not assume that silence is consent. It is not. In many cases, silence means that the project developer has not yet understood the scope, tasks, and goals of the project. For this, software project managers also need to fully communicate with developers. Find out what the developers think. A team cannot succeed without a common understanding.

80-20

80-20 principle in software development and project management have a lot of examples, the first is that we are 20% 80% of the time spent on the project requirements, analysing, these requirements are divided into necessary and unnecessary, because we recommend compressed or will not have to put aside not too seriously, software development facts tell us, Developers spend too much energy on unnecessary project requirements, and most of the changes to the user’s requirements are in the best part of the project, where the user doesn’t really appreciate the requirements. And what we do, we tend to neglect our roots.

Parkinson’s principle

Parkinson’s principle Is a synonym for unwieldy and inefficient government departments. However, it is also true in software development, where there is no time limit and work can be extended indefinitely. In software development, if there is no strict time limit, developers tend to be more slack. As a software manager, at this time, we should reasonably consider the work efficiency of developers and the negative impact of project changes, formulate a reasonable project period and encourage developers to complete the project as soon as possible.

Time allocation principle

In the process of project planning, we often set the efficiency of human equipment at 100%, but people also need to drink water, eat, have meetings, rest and so on. 8 hours a week but is nominal, and still don’t consider whether the efficiency of developer has been a constant in the same level, due to the ignorance of project management personnel, lead to developers are forced to try very hard to work overtime, the result still Brooks principle problems, developer efficiency can reach 80% in practice is very good, we tend to 60%.

Change the principle

The only constant in a project is change. It is inconceivable that a project does not consider possible changes. However, when facing the risks brought by project changes, our project management personnel often have an attitude of escaping. Software management personnel do risk management early, although risk reserves can not solve all problems, but prevention is better than cure, unfortunately most of us do not realize this.

Operating standard principle

A team needs discipline to complete a project. It is a pity that many domestic development is still based on the workshop type, we have been surprised that Indian high school students can program, but the domestic is not a bachelor’s and master’s, the reason is that there is no development rules, or rough rules. A good code template and code specification can solve many of the problems of writing arbitrary programs. Does business software development need great development skills? No, the beauty of software development lies in its simplicity and standardization, not in its bizarre techniques. The price we pay for the lack of operating standards is customer complaints and endless rework.

Reuse and organizational change principles

How to solve the increasingly prominent project duration, cost, quality problems, this is the project managers most concerned about the problem. In practice, it is one of the best ways to strengthen reuse, establish project reuse system and implement organizational reform. Reuse can improve project productivity, reduce project risk, software project management can quickly enter into the definition of project problems, reduce the amount of project development, so as to solve the project overload in terms of time and resources as much as possible. Another way is to implement the project team of organizational change, simplify the software project management organization, to redefine the job responsibilities, develop flexible project workflow, streamline project management institutions, to redefine the job responsibilities, develop flexible project workflow, improve the efficiency of project staff development, efforts to build a good development environment, In this way, all kinds of thorny problems in project development can be solved fundamentally.