Review of "the mythical man month" chapter 3

We always heard a small, sharp team of first-class people is better than a big team, but it is difficult to scale. What should we do when a big product need to be built?

The surgical team

The book suggest a surgical team like structure to reduce the communication cost. Only one member cutting away on the problem and other teammates give support to him.

Surgeon

  • Chief programmer
  • Define functional and performance specification
  • Design, code and test program
  • Write documentation
  • Responsible for all codes

Copilot

  • Able to do what ‘surgeon’ do
  • Prevent ‘surgeon’ to make mistake
    • Discuss and evaluate idea and design with ‘surgeon’
    • Reseach alternative design strategies
  • Discuss the functional interface with other teams
  • Know all the code
  • May write code, but he is not responsible for any part of the code

Administrator

  • Handles money, people, space, and machines
  • Unless the project has substantial legal, contractual, reporting or financial requirements, one administrator can serve two teams

Editor

  • All documentation should be written by ‘surgeon’, no matter it is internal or external
  • Editor criticize, rework surgeon’s manuscript
  • Editor also provide reference, bibliography and having version control on documentation.

Secretaries

  • One secretary for administrator, and one for Editor
  • Handle project correspondence and non-product files

Program Clerk

  • Maintaining all the technical records in a programming-product library
  • Has responsibility for both machine-readable and human-readable files
  • Make all programming resources public
  • Relieves programmers of clerical chores, systematize and ensures proper performance of those oft-neglected chores

Toolsmith

  • Ensure the basic service available
  • Responsible for constructing, maintaining and upgrading special tools
  • Construct specialized utilities, catalogued procedures and macro libraries

Tester

  • Help design test case and prepare test data
  • Plan testing sequence and set up the scaffolding required for component tests

Language Lawyer

  • Expert on a specific Language
  • Find a neat and efficient way to use the language to do difficult, obscure, or tricky things
  • Need to do two or three days studies on good technique
  • One ‘language lawyer’ can serve two or three surgeons

How it works

  • Only ‘surgeon’ and ‘copilot’ take care the design, which guarantee conceptual integrity of the work
  • There are no differences of interest, as surgeon make the final decision

Communication Pattern

  • Administrator and editor communicate with ‘surgeon’ directly
  • Surgeon have close communicate with Copilot
  • Programming clerk, toolsmith, tester and language lawyer communicate with surgeon and copilot

Scaling up

  • Scale with team as unit
  • For a 200 people project, only need to coordinating 20 minds of surgeons.