๐Ÿฅ The Surgical Team Model

Mythical Man Month is a fantastic read. In it, the author introduces a proposal by Harlan Mills which outlines various roles in a “small, sharp team”, an extremely productive unit of software engineering professionals that work best at no more than ten people. The reason the small surgical team works so well is conceptual integrity.

one wants the system to be built by as few minds as possible.”

F. Brooks, p. 30 of Mythical Man Month

He continues to explain that it is more important to have a fundamentally well-designed system, than one that has a handful of uncoordinated “bells and whistles” features. Respecting and adhering to the masterโ€™s system design is bypassed when many subsequent programmers add features or bug fixes. When this happens, each programmer codes to their own separate design.

Here’s how the surgical team is composed:

๐Ÿฅผ The Surgeon

Serves as the chief programmer and systems architect who defines specifications and spends his time designing, coding, writing tests and documentation.

AKA: lead engineer, systems architect, project lead.

๐Ÿง‘โ€โœˆ๏ธ The Copilot

Less experienced than the surgeon, but able to share any of his responsibilities. Serves as collaborator in thinking, discussion and evaluating solutions. Communicates on behalf of the technical specifications as the “public interface” for other teams.

AKA: senior developer, technical lead.

๐Ÿ“ The Administrator

Handles the logistics of the team and executes on behalf of the surgeon. He takes care of people, money, space and “machines”. Responsibilities could also extend to reporting and other logistics.

AKA: engineering manager, project manager.

โœ๏ธ The Editor

Takes the surgeon’s documentation draft and produces the finished product, adding references and appropriate citations.

AKA: technical copywriter, technical writer.

๐Ÿ“ž Two Secretaries

Serve as assistants to the administrator and the editor. They handle correspondence and non-technical admin tasks.

AKA: executive assistant, account manager.

๐Ÿ‘จโ€๐Ÿ’ป The Program Clerk

Maintains technical records of the program’s library and relieves programmers from clerical chores. Capable of handling secretarial duties, but has the capacity for more technical responsibilities. Facilitates data and reporting as publicly accessible resources.

๐Ÿ”ง The Toolsmith

Administers and maintains tools and services used by the team. May construct specialized tools and macro libraries as required by the surgeon.

AKA: DevOps specialist, systems administrator, database architect, IT specialist, software engineer.

๐Ÿงช The Tester

Writes tests. May include automated unit, feature, integration and regression testing. Can extend to browser testing, or beta testing.

AKA: software engineer, UX specialist, beta tester, users.

๐Ÿง  The Language Lawyer

An expert of the programming language in use, they configure the design decisions and optimize the program for more efficient operation at runtime.

AKA: senior software engineer.

While the small surgical team is extremely productive, it is too slow for really big systems. When faced with an enormous project, the rate at which they can complete a program cannot outpace obsolescence.

Leave a comment

Your email address will not be published. Required fields are marked *