"Mythical Man-Month" Chapter 3: Surgical Team (The Surgical Team)

These studies suggest that individual differences between efficient and inefficient perpetrators of very large, often able to reach the level of magnitude.

The studies revealed large individual differences between high and low performers, often by an order of magnitude...


After tube technology and an excellent technical staff promoted to manager, encountered technical problems, often themselves, it will not lower the level of subordinates to dry.


Software development team choice is often a problem, most people like to first-class talents of the small, elite team. In fact, I also like to use crack, have a distinct advantage in communication and work efficiency.


Indeed, the best and the worst people on productivity, there is often a gap magnitude, experienced programmers can play effect to an enemy ten. But for large-scale software systems, small but nice team often bloated, unable to meet the needs of project time.


For the integrity and efficiency of the concept, the best by a small number of competent personnel to design and develop, and for large systems, it requires a lot of manpower to make products to meet the requirements in time. How to reconcile these two aspects of it?


Surgical team the way it is worth learning.


Mills recommended for large projects into smaller parts, each part of the solution consists of a small team, and the team is based on the surgical team approach to build. In other words, a part of the practice of interception with each member of the opposite, by one person to complete decomposition of the problem, others support he needs in order to increase efficiency and productivity.

 

Responsibilities of team members as follows:

No.

Team Roles

Responsibility

Remark


Surgeon The definition of the functional and performance specification (should be the functional requirements and quality attributes), program design, write source code, testing and writing technical documentation. Require very high talent, applied mathematics, business or a large number of data processing systems knowledge and application of knowledge in other areas

Assistant

As the main design thinking, discussion and assessors. The surgeon and his communication design, but are not limited his recommendations. Deputies to represent their team communication functions and interface issues with other team. Understand all the code, design strategy and research alternatives.

Possible establishment code, but any part of the code, does not undertake specific development responsibilities.

As a surgeon insurance mechanisms.

Surgeon reserve, to complete any part of the work, but relatively little experience.


administrator Control professional management of financial, personnel, place of work and office equipment, the organization acts as an interface with other regulatory agencies

Recommended requirements in the law, contracts, reports, and financial aspects, the administrators have full-time responsibilities.

Other cases may be responsible for several teams


edit According to a draft of the surgeon or surgery, analysis and restructuring, providing a variety of reference and bibliographic information for multiple versions for maintenance, and monitoring mechanisms generated documentation. The purpose of the document is to create maximum transparency in future consideration, both for internal and external description description

Secretary Administrators and editors need a secretary, responsible for the preparation of the document Administrator secretary in charge of non-product files and make the project a concerted effort.

Program staff

Programming technology portfolio responsible for maintaining records of all teams;

Management file and the machine code readable file;

Run version control program, a control program

Archived in chronological order

The programmer freed from the chores of documents, etc.

Strengthen the team's most valuable asset - work products


Tool maintenance personnel Maintain and ensure the reliability of all basic services; develop some utilities

Testers Step responsible for planning and testing of the unit test build test platform, as a surgeon opponent, program design test cases; as a surgeon's assistant, to help test

Language experts Willing to grasp the person in charge of programming languages, we provide How simple and effective way to address responsible, obscure or difficult issues of service Multiple service team

The real key surgical team is "individual artistic practice to the public," the idea of ​​the conversion program. It shows all the computers running and products to all team members, and all programs and data are seen as the property of the team, rather than private property.

I have often stressed, poor communication, information opaque management is the biggest problem. The number of people need to collaborate communication affects the development costs, because the major component of the cost is mutual communication and exchange, as well as to correct poor communication results (commissioning) caused by improper. Therefore, we must ensure a smooth communication within the team.


In our party of two open project team, it is still the traditional mode, each responsible for a programmer optimization requirements, from requirements analysis, code development, testing and delivery are done by the same person. We do have a few drawbacks:

1, each optimized only one person needs clear, the other team colleagues is not clear. There may be a conflict of program code, and the need to merge code frequently.

2, everyone involved in the design and development capabilities, inconsistent everyone's design and style, the level of good and bad, which causes the program is no uniform standard.

3、需求文档,设计文档,测试文档等不完善,所有的信息都装在开发人员的脑袋里,人员变动时,交接会非常困难,后接手的人需要从代码入手。

4、从效率上来讲,专业化分工是高效的关键,成员之间采用非常简单的交流模式,就类似于工厂的流水线,强制节拍就是简单高效。前几年参加一次流程管理的培训,在课堂实践案例中,第一次我们采用的方案是每个人从头到尾负责所有内容,最后的成绩是负400多分;流程优化后,第二次我们采用的方案是每个人只负责一小段工作,一段的输出做为下一段的输入,最后的成本是1000多分,前后差距非常大。


对于大型的系统开发,需要将团队分成若干个外科手术团队,比如200人的团队,仅仅需要协调20个外科医生的思路。

对于协调的问题,还是需要使用分解的技术。整个系统必须具备概念上的完整性,要有一个系统结构师从上至下地进行所有的设计。




Guess you like

Origin blog.51cto.com/hichuann/2476322