1. 对于效率和概念的完整性来说,最好由少数干练的人员来设计和开发,而对于大型系统,则需要大量的人手,以使产品能在时间上满足要求。如何调和这两方面的矛盾呢?
2. Mills的建议:
外科医生(首席程序员):定义功能和性能技术说明书,设计程序,编制源代码,测试以及书写技术文档。
副手:主要作用是作为设计的思考者、讨论者和评估人员。
管理员:控制财务、人员、工作地点安排和机器,充当组织中其他管理机构的接口。
编辑:根据外科医生的草稿或者口述的手稿,进行分析和重新组织,提供各种参考信息和书目,对多个版本进行维护以及监督文档生成的机制。
两个秘书:
程序职员:维护编程产品库中所有团队的技术记录。
工具维护人员:保证所有基本服务的可靠性,以及承担团队成员所需要的特殊工具(特别是交互式计算机服务)的构建、维护升级责任。
测试人员:各个功能设计系统测试用例的对头,同时也是日常调试设计测试数据的助手。 负责计划测试的步骤和为测试搭建测试平台。
语言专家:寻找一种简洁、有效的使用语言的方法来解决复杂、晦涩或者棘手的问题。
3. 当进行大系统开发时:
要有一个系统结构师从上至下地进行所有的设计。要使工作易于管理,必须清晰地划分体系结构设计和实现之间的界线,系统结构师必须一丝不苟地专注于体系结构。
在进行大型系统的开发时,小型而精干的队伍太慢了(但核心的模块或功能,特别是复杂的,风险最大的应该还是应该保持小型精干的队伍为好)。