项目开发团队要足够简洁。绝大多数大型编程系统的经验显示出,一拥而上的开发方法是高成本的、速度缓慢的、不充分的,开发出的是无法在概念上进行集成的产品。对于效率和概念的完整性来说,最好由少数干练的人员来设计和开发,而对于大型系统,则需要大量的人手,以使产品能在时间上满足要求。这两方面的矛盾如何调节?
Harlan Mills提议项目应由一个外科手术式的队伍来开发。
外科医生:首席程序员,亲自定义功能和性能技术说明书,设计程序,编制源代码,测试以及书写技术文档。
副手:外科医生的后备,能完成任何一部分工作,但是相对具有较少的经验。他是设计的思考者、讨论者和评估人员。
管理员:控制财务、人员、工作地点安排和机器的专业管理人员,该管理员充当与组织中其他管理机构的接口。
编辑:文档书写人员。编辑根据外科医生的草稿或者口述的手稿,进行分析和重新组织,提供各种参考信息和书目,对多个版本进行维护以及监督文档生成的机制。
两个秘书:管理员和编辑每个人需要一个秘书。管理员的秘书负责项目的协作一致和非产品文件。
程序职员:负责维护编程产品库中所有团队的技术记录。该职员接受秘书性质的培训,承担机器码文件和可读文件的相关管理责任。
工具维护人员:检查他的外科医生所需要的工具。工具维护人员常常要开发一些实用程序、编制具有目录的过程库以及宏库。
测试人员:负责对外科医生所编写的工作片段或整个工作进行测试,以及负责计划测试的步骤和为测试搭建测试平台。
语言专家:负责寻找一种简洁、有效的使用语言的方法来解决复杂、晦涩或者棘手的问题。他通常需要对技术进行一些研究(两到三天)。通常一个语言专家可以为两个到三个外科医生服务。