软件工程,固然它不仅仅是一个软件开发,而是一项工程。它又不仅仅是一项传统生产关系下的工程,它是一项“复杂性”工程。我特意将“复杂性”三个字引号括起来,因为这里的“复杂性”不是通常生活中说的复杂,而是一项与前沿科学研究相关的“复杂性”概念。现代经济是一项“复杂性”的产物,全球化下的产业链协同也是一项“复杂性”的产物。而软件工程,更是一项典型的“复杂性”的产物。 “谬误的思考方式是在估计和进度安排中使用的工作量单位:人月。” “用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。它暗示着人员数量和时间是可以相互替换的。” 作者指出,软件工程,绝非如传统的农业生产或工业生产那样,通过人和时间的累加就可以扩大生产规模或加快生产效率。
作者通过巴别塔的失败形象的指出沟通是有成本和损耗的。 麦克斯韦尔的小妖,曾经貌似不需要做功,只需要思考判断,就可以有序化冷热分子。现在我们都知道,这个小妖实际是做了功了,它的思考就是在做功。在1948年,香农将热力学的熵,引入到信息论,被称为香农熵。
个人感受:也就是说,信息,思考和沟通,是做功的,是有成本的,对它们作用的系统是有损耗的。 软件工程,是一项集体进行的思想创作的“复杂性”工程。这项工程在集体协同创作中,必然存在内部成员的沟通,这个沟通必然会产生沟通成本,当沟通成本增长到一定时,就会造成整个工程无法承受而失败。多个成员之间网状的沟通成本的增长,也并非是线性增长关系,这种情况下,当沟通成本增长进行时,你或许无法及时控制住它穿越高压线。