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.