Some studies have shown that the individual differences between high-efficiency and low-efficiency implementers are very large and can often reach an order of magnitude.
――Sackman, Erikson and grant
GoodProgramThere is a surprising difference between staff and poor programmer productivity.Sackman. EriksonAndGrantMeasurement was performed on a group of experienced programmers. The best and worst performance in this group is productivity.10:1In terms of programming speed and Space5:1Amazing difference! In short,20000USD/The annual programmer productivity may be10000USD/Years of programmers10Times. And vice versa.
For a small project10A dedicated team of less than one person is a good thing, but it is no longer reasonable for large projects. One-stop routing can only be a waste of resources.
Harlan MillsThe proposal provides a brand new and creative solution. It is recommended that each part of a large project be addressed by a team, but the team should be established in a similar way of surgery, rather than in full swing.
-
- Surgeon. Chief programmer, this role requires an extremely high level of talent, ten years of experience and a large amount of system knowledge and application knowledge in applied mathematics, business data processing, or other aspects.
-
- Deputy. The surgeon's deputy can complete any part of the work, but has relatively little work experience.
-
- Administrator. A surgeon is the boss and can have full discretion in terms of personnel, salary, and office space, but it absolutely cannot waste time in these aspects, So administrators need to help solve these problems.
- Edit. The surgeon is responsible for generating documents, taking into account maximum transparency, and requires a large number of documents which need to be edited.
-
- Two secretaries.
-
- Program staff. He is responsible for programming the technical records of all teams in the product library.
-
- Tool maintenance personnel. The team is responsible for ensuring efficient use of tools.
-
- Tester. Assists the surgeon in performing related test cases.
- Language expert. ProficientProgramming Language, Provide useful consultation
In the construction of large-scale systems, how can we use this surgical team architecture? How can we coordinate projects with hundreds of thousands of people?
The success of the expansion process depends on the fact that the conceptual integrity of each part has been thoroughly improved-it is determined that only a small portion of all members of the design staff are occupied, therefore, most people are solving the problem, but they only need to coordinate the thinking of a very small number of people, namely those "surgeons.
In general, the above-mentioned division of roles and technologies are feasible and have a very high efficiency in actual work.