Organization and division of labor of software developers

Source: Internet
Author: User

Large Software The project can only be completed one year or several years after many people cooperate. In order to improve work efficiency and ensure the quality of work, software developers should organize, divide their work and Management It is a very important and complex task, and it directly affects the success and failure of the software project. First of all, the software developer's selection and division of labor are critical because of their individual qualities and differences. In 1970, sackman matched 12 Programmer Use two different Program In the experiment, the conclusion is: The program debugging time difference is, the programming time difference is, the program length celebration is, and the program running time difference is. In recent years, with the improvement of software development methods and tools, the above differences may be reduced, but the rational selection and division of labor of software personnel, it is obviously important to give full play to everyone's expertise and experience. Secondly, because software products are hard to understand and maintain, the organization of software personnel is critical. An important principle is that the organizational structure of software developers corresponds to the development model of software projects and the structure of software products, in this way, software development methods, tools, and people can be integrated to reduce management. System Is conducive to the Management and Quality control. Organizing software developers by tree structure is a relatively successful experience. The root of the tree is the software project manager and the total technical director of the project. Ideally, the project manager and Technical Director are held by one person or a group. The node of the tree is a programmer group. In order to reduce the complexity of the system and facilitate project management, the node of the tree should not exceed 7 at each layer, and the number of layers of the tree should be minimized on this basis. The number of programmers in the group should be determined based on the task size and the time when the task is completed. Generally, the number is 2 ~ Five members. To reduce the complexity of the system development process, the task interface between programmers in a group must be clear and simplified as much as possible.

Organizing a software development group by "primary programmer" is a relatively successful experience. "Primary programmer" should be "Super programmer ". Other members, including programmers and backup engineers, are the assistants of primary programmers. The primary programmer is responsible for planning, coordinating and reviewing all technical activities of the team. Programmers are responsible for software analysis and development. The backup engineer is the assistant of the primary programmer. If necessary, the primary programmer can lead the work of the small group and maintain the continuity of work. The software development team can also assign relevant professionals, such as databases, as required by the task. Design Personnel and remote communication and coordination improve work efficiency. The success or failure of this form mainly depends on the programmer's technology and management level. In addition to the developer group organized by the main programmer, you can also set up a software democratic development team based on "No-me program design. The organization forms emphasize the equality of all members in the group. Problem It is determined by collective discussion. This type of organization is conducive to brainstorming and mutual learning, but the work efficiency is relatively low.

Software projects or software activation teams can configure several secretaries, software instruments, testers, editors and lawyers to wait. The Secretary is responsible for maintenance and software configuration documents, source code, Data And various magnetic media attached; standardize and collect data during software development; standardize and collect reusable software, classify and provide retrieval mechanisms; assist the software development team in preparing documents, for various parameters in the project, such as code lines, costs, Work Progress and so on. participate in group management, coordination and software configuration evaluation. One or more large software projects need to be configured Configuration Management Personnel, responsible for various Version Control of software project programs, documents and data, to ensure the consistency and integrity of the software system. Software development teams and groups often Communication Situation and information to reduce misunderstandings, delete personal characteristics in the software, and improve the quality of the software.

The development practice of software projects shows that the types, levels, and quantities of technical personnel are different in each stage of software development. There are only a few people in the planning and analysis phases of software projects, mainly system analysts, senior software engineers engaged in Software System Theory certificates and summary design, and senior project management personnel. A part of senior programmers should be added during the outline design, software engineers and programmers should be added during the detailed design, and programmers and Software testers should be added during the coding and testing stages. In this process, software development management personnel and various specialized personnel gradually increased. By the end of the test phase, the number of software project developers reached the peak. During the initial stage of software operation, there were a large number of personnel involved in software maintenance. Early disbanding of software developers would bring unexpected difficulties to software maintenance. After the software has been running for a period of time, software developers will soon fail due to their participation in corrective maintenance, so that software developers can gradually withdraw from the software. If the system does not perform adaptive or perfect maintenance, there will be no maintenance personnel left behind. Above Human Resources The installation curve is similar to the following shows the Laplace-Norden curve. According to the conclusion obtained by Putnam that the workload of software project development is inversely proportional to the four phases of the development time, it is concluded that the software development personnel-time compromise law: when time permits, appropriately reducing staff will improve work efficiency and reduce software development costs. F. Brooks from a large number of software development practices Found : "Appending developers to an extended software project may delay the completion of the project ." This shows from another perspective that software development takes longer and fewer people. In this way, the communication overhead between personnel can be greatly reduced, and the work efficiency will be higher.

It can be seen that in the software development process, personnel selection, allocation and organization are major issues involving software development efficiency, software development progress, software development process management, and software product quality, it must be highly valued by the project owner.

Note: The above content comes from the Internet and is not jointly and severally liable.

Article transferred from: http://pm.csai.cn/hr/200801282158551118.htm

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.