这是人月神话:软体专案管理之道(20周年纪念版)的第三章:外科手术团队,一开始就有一句话SACKMAN, ERIKSON, AND GRANT:‘研究显示,高手与庸手的表现有着极大的差异,而且往往是一个数量级的差异。’一个数量级的差异可以看维基的解释,也就是10倍的意思。一个典型的外科手术团队,包括外科医师、助手、刷手护士、麻醉医师、麻醉护士、流动护士及专业技术人员约10个人左右,这篇文章的大意在于软体的专案管理如果组织也可以像这样的短小精悍,那么其实是不需要百来个二流角色的。

接下来讨论的问题,‘就是要兼顾工作效率与概念整体性(conceptual integrity),这是两难的问题,对于超大系统来说,你想只采用几个优秀脑袋瓜来进行设计和创作,但是这样的人手似乎还是不够,你该怎么办?’

‘Mills有一个解决方案,就是首席程式设计师(chief programmer)比作外科医师(surgeon),他来负责定义功能上和校能上的规格、设计程式、编写程式、测试程式,并撰写文件。副手(copilot)相当于外科医师的分身,在设计时担任出主意、参与讨论、评估的角色。行政助理(administrator),帮忙处理财务、人事、场地、装备,以及对外的一切行政事务。文书编辑(editor),负责拟稿,笔录外科医师的口述指示,然后加以润饰、编纂、加上参考文献与目录,处理文件的改版,并监督整个制作文件的过程。两位秘书(secretary),负责处理专案的协调事宜,以及与产品无关的文件。程式助理(program clerk),负责维护团队在软体产品程式库(programming-product library)中所有技术上的纪录。工具专家(toolsmith),档案编辑、文书编辑,以及交谈式除错(interactive debugging)等由他负责准备妥当。测试员(tester),担任对立者的角色,根据规格来设计测试案例,同时也是协助者的角色,为除错工作来设计测试资料。语言专家(language lawyer),找出语言方面最简洁有效的方法,以解决棘手、模糊、技巧性的问题。’所以一个程式设计团队,可以这样由10个人完成,这可厉害了。

运作方式提到要同心,跟教会所提要合一,这绝对没问题,是个理想,但是只要有志,事一定成。但是我们会继续碰到问题,一扩大规模的问题(scaling up)、二是工作切分的问题,切分代表着公平的问题,切不好可是会吵架的。但是这方法还是可行的,而且被证实过,所以大家一起来学习吧!