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.