第四章 程序开发组
----本章主要讨论了程序开发组内部关系以及程序开发组和外部环境之间的关系。强调了程序开发组内部交流的重要性、互查代码的必要性、要求主管给与程序开发组充分的交流场所、鼓励团队合作精神、希望主管不要盲目拆散高效的团队。
正式与非正式机构
主管们很喜欢玩组织结构图的游戏,但是如果将程序员之间的交流,严格限制为图中那狭窄而笔直的线条,那么程序开发将不会取得多大的成果。人与人之间的交流沟通既不是那么狭窄,也不是那么直截了当,更不是用一张组织结构图就能表示出来的。
工程项目中的非正式结构在很大程度上要取决于其工作结构,因此或多或少都会与组织结构图相符;而具体符合到什么程度,则取决于该项目的组织化程度。无论其正式结构如何,也总会有一些相伴而生的非正式结构来进行更正和补充。有时候,如果当权者非常明智,他们可能会把出自非正式结构的新方法以正式的形式固定下来。
非正规的机制到处存在,而且如果你还没有真正搞清楚其规律,就企图改变什么,那将会十分危险----你可能会把有些操作系统搞得一团糟。
自然环境与社会结构
程序开发过程中的社会交流方式,会转而影响到正在进行中的开发工作。
只要在领取计算机输出的地方,安排相邻的一间屋子作为公共休息室,那么人与人之间就会在信息交流的过程中,得到很多有益的东西。但是,个性化的邮件发送系统却会使程序员与这种交流隔离得更远;而通过终端系统实现的远程任务进入与退出,则会进一步加剧这种隔离。
----难怪GTEC有break room啊,总算理解了除了提供饮料和休息场所之外更重要的交流功能。
错误与唯我独尊
如果一名程序员真的把自己编写的程序视为其自我的延伸,那么他就绝对不会希望在他的程序中发现任何错误。不仅如此,他还会尽力证明,自己的程序都是正确的---甚至于,即使他发现了重大的错误,他也会睁一只眼闭一只眼,对错误视而不见。
无私式程序开发
---就是code review,没想到温伯格25年前就提到了
建立与维护程序开发的环境
在一个计算中心里同样会建立起一个整体的社会环境,对于无私式程序开发方式,这种环境要么积极提倡,要么一味抵制。