How to develop software? ---- Product, Process, People's Three Elements Software World Reporter Honglian
Software development process, such as quality, progress, personnel flow and other management issues, so many companies have also suffered from the management of software engineering, but often start from book charters, focusing on concept and rules, There is a lack of specific operational means. After a period of persisting, management is slow in the form, labor is hurt, the effect is not good, and finally became a paper, I can't.
Two conditions for successfully implementing software engineering management
Whether in the newly established company, it is still a new management method in an existing software team. It must be two points to succeed: first, the main body, programmer and first line of software engineering activities Managers have practical value. Make their work more organized, efficient, so it is more relaxed. They are the main body of software engineering activities, must be the beneficiary of management methods to be happy, rather than "cooperation." If a method is to increase their work difficulty, it is difficult to count on them to cooperate for a long time.
Second, it is necessary to meet the objective law of the development of things. Because people have a gradually adapted process for new things, there is also a running time between the various departments. Some companies have tried to in place, deploying a certain system, determined to have a big cost, the result is that the speed is not reached. The shock reform of the Soviet Union is smaller than some surgical procedures, and the same truth is explained.
During the development of Xinye Century, starting from the three main aspects of software engineering management: Product products, process process, and personnel, can be simply called 3P development management methods. This management method covers the basic content of software development management, which is suitable for most software companies in my country. Its specific embodiment is several basic tools commonly used in software engineering, with high operability, can actually solve specific problems.
3p Tools are the concentration of management philosophy and actual operation
3P management tools start from raising the efficiency of a first-line personnel, simple and easy, and effective. From the download assessment, to the installation, the fastest week can be done. The basic functions used by most people can only take effect. Implement the rules of management concepts through the actual use of tools.
The science and technology is further further accompanied by the development of tools, and the progress in any industry is inseparable from the improvement of the tool. Whether the tool is complete, it is an important sign that measures whether a industry is mature. For a company, whether to adopt advanced tools for the production efficiency of the company, product quality has a decisive impact. Coking bicycles can be opened with a few wrench screwdrivers, while the official car repair shop requires at least a tool and equipment for tens of thousands of yuan. Many software companies give people a "workshop". One of the important reasons is that even basic software engineering tools are not adopted, let people think of the pavilion of "refining various cars" next to the country road.
The world's other software industries have gradually developed a lot of effective development and management tools through decades of exploration. Mastering these tools, basically master the actual content of the software engineering. By studying these tools, you can learn about the main problems that must be paid to the work, and what methods can be solved. From solving these basic actual problems, improve the software production management system is an effective way to implement software engineering.
Product Management (Product)
The management of the software development team is the most prominent issue. The technical backbone in any industry is unfavorable to the company, but the software industry is the most serious, and even affects the company's survival. If the departure is going to stand up to the door, or the competitor is a disaster for the company.
If a company's product lifeline is in a few people, these people naturally have some privilege. This "less than he doesn't turn around" is more advantageous than managers. Under this situation, management measures such as labor discipline, reward and punishment and punishment system have lost their efforts. Some people call this phenomenon as the boss to work with the affiliate, and very images the passive position of the manager. The root cause of this phenomenon is that there is no standardization management. The various parts of the company's products are scattered in their hands. Even if you can transfer it before leaving, it is inevitable that it is incomplete, others can't master it in the short term, or find problems. If you want to completely avoid this, you need to put the company's product Product PRODUCT, so that the software production process is always controlled, repeatable, replicable state, and reduces the dependence of individuals.
The version management system used in Cortai century not only manages the source program, but also manages all information related to the development environment, test programs, etc. and final products. With these information, anyone can repeat the production of products on a new machine.
Talking about strict management, some people will worry about how to provide loose work environments for employees to improve work efficiency. In fact, with the aid of the correct tool, the two are not only conflict with each other, but instead complement each other. Product management can not only facilitate personal work, but also can effectively coordinate multiplayer cooperation, the more people participating, the more obvious effects. This is the root cause of the Cortai century management tools.
Process Management (Process)
The idealized software production process is from demand analysis, overall design, module design, coding, testing, and more. However, in the actual process, it is often in the user's hand, and new modifications or increased functions are put forward, and the goal of the project has changed.
From the means of project implementation, since the level of grasp of the technology is different, it is necessary to use new technologies and methods for competition, resulting in an uncertain means to achieve uncertain goals. The difficulty of management is naturally larger.
People often use management experience inside other engineering to manage software production, but it is finally not adapted. The software production process has some particularity, the most prominent point is full of uncertainty. Problems appearing in an unexpected link may result in adjustments to the entire plan. Often see the "bad" project is dragged again, and the progress table drawn in the order of each process will become meaningless.
Many software projects are started by a prosecution, gradually determining the program and technology route. The second code has become the subsequent basis. This has attracted an important issue in software development: task tracking.
In the process of probation, many details are ignored in order to achieve verification as soon as possible. The building has been capped, but the work left behind is still much. Some of these tasks are written in the plan, and some are the programmers. In order to solve a problem, find other problems, and time and energy do not allow all problems to be resolved once, this is often normal in the process of developing and maintaining software. These problems that are not completely solved are very large, and the memory of people is not managed. Some problems involve other modules, need someone else's cooperation to solve, sometimes even don't know who should be handled by the most appropriate. All of these features make software engineering more complicated than other projects. If there is no corresponding tool, it is very difficult to manage, often forming many problems that have been acquired repeatedly.
Process management is to constantly record new work clues, keep the project progress, Catai's "BUG) tracking system" is developed for this demand. The bug that needs to be tracked is not only an error existing in the code, but is a matter of all the things to be processed, including the recommended improvement suggestions.
From a management perspective, the status and person in charge of the BUG are two most important information. A bug is closed from registration, repair, review, and accepts the last closed, forming a complete living cycle, and there is a clear person in charge in each state. Everyone is recorded in the database for Bug's description, judgment, and work made. These are all valuable engineering files, which is very valuable to solve the defects in the software and future maintenance software. Through the BUG tracking system of Catai, what is the problem to be solved in the system, their difficulties, who are responsible and other important information can be done at a glance. Various reports can achieve comprehensive monitoring of BUG, keep the quality and engineering progress of the software at any time. Especially in the engineering final stage, the BUG list is the best way to understand the state of the project.
Personnel management
Software production uncertainty also plagues the management of software engineering teams. When the project encounters difficulties, is it the problem of technical itself or a personal abilities? When the project progress is frustrated, it is a normal exploration, or because of the job is not done? One of the most obvious examples is to fix the workload estimate of the bug. Some problems look very serious, but it is easy to fix it. In contrast, the problem is not big, but the surface is wrong, but the trim is too much, but there is not only the risk of other problems.
Software development requires creative thinking, and is also highly concentrated work, and individual mental state has a great impact on work efficiency. On time, I will be punched on time, and the software developer is limited to the role of management. Some companies use the "piece" method to measure the number of programmers with how much the number of rows programmed per week. Under this system, no matter whether the programmer is interested, the more it is more difficult to avoid. It is also necessary to fix the work quotas for three bugs every week. It has caused everyone to repair small bugs, and the real big problem is dragged, and some people may repair five BUGs only report three, stay Two next week. To manage this, the enthusiasm of mobilizing the employee will not talk.
The measurement of workload has been so touched, and the work attitude is even more difficult to grasp. The most valuable labor of programmers is in the brain, how can it avoid going out? Some people can do more work, but if the people around them are not working, their enthusiasm is difficult to maintain long-term, and the time will even cause the situation that is inconsistent with others. Therefore, slow down, do it in your heart, complete your own work. Everyone under this emotional influence, the result is often a limited employee affecting the potential employees, making the standard of "this work" becomes lower and lower.
Personal work is still, and the task assessment of multi-person cooperation is more difficult. Engineers needed to cooperate with each other during software development, and almost every job is connected to others. This intersection of this intersection in the work cannot be clearly divided on the production line. If there is any problem, what should be responsible? Some things need to be changed, and sometimes there are any parties in both parties. If you wait for a lot of time, you will have a decline in overall work efficiency.
The performance assessment system of Cortai century can help management to make a fair assessment of developers to establish a valid reward and punishment system. The disclosed evaluation system can establish a clear effort for employees. Effective incentive mechanisms can mobilize everyone's enthusiasm, establish a team with tacit, unity and struggle.