综述
这是一本值得每一位软件工程人员一读的好书。本书详细探讨了软件工程中“高效性”与“稳定性”的问题。书中的经典语录数不胜数,此处仅摘录三则,联系实际,作一些感想。
v 用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。
——摘自《人月神话》
在本书中,传统的以 [人数×时间] 作为工作量的效率公式被推翻。这是一个比较新的观点,但正被越来越多的人所接受。在现代化的社会之中,“人月”的概念被逐渐淘汰,因为老的社会组织架构正在以一种全新的组织形式渐渐充满整个社会。这种组织架构最先表现在软件行业,但随着互联网的普及,网络以一股前所未有的洪流涌入各行各业,成为几乎一切学科的基石和学科间交融的平台。于是,软件行业自身独特的组织架构也融入到各行各业之中。
那么,“人月”为何具有欺骗性,而接受该观点又为何如此危险?
这种欺骗性是传统与现代的冲突所造成的。因为传统的概念根深蒂固,无知的老一辈一代代传承,它便像病毒一样深潜在新一代子民的身上。“看似不容置疑的错误”正是其“欺骗性”所在。而这里所述的“危险”,是一种事倍功半的时间丧失的危险——更甚者,它是被时代所淘汰的危险。随着新概念、新观点的不断提出,老观点和它们的子民注定将被新时代淘汰。
v 如果要得到系统概念上的完整性,那么必须控制这些概念。这实际上是一种无需任何歉意的贵族专制统治。
——摘自《人月神话》
这句话非常好地道出了任何一种计算机语言的共性——少数专家制定、多数用户使用。不得不说,计算机语言是与日常语言完全不同的存在。日常语言是群众创造的,它不分正误,只为表情达意,群众使用语言的广度和频度直接影响了日常语言的发展。而计算机语言是封闭的,群众没有修改语言的权利,它本身有鲜明的正误之分,错误的语句只有被不断修改,直到符合正确的标准。
在这样一种特殊性下,或许有人会质疑计算机语言制定与发展的合理性。但我们必须注意到,将计算机语言类比于任何一种我们所熟知的日常语言都是不恰当的。它被创造的目的就不是让我们用户去理解,而是让机器去理解。而正如《人月神话》中所述,这种“贵族专制”是”毫无歉意”的,因为只有严密得几近于苛刻的规则,才能打造出机器本身的健全性,才能为这些本没有任何感情的逻辑结构赋予某些超越我们的思考运算的能力,甚至让我们产生与它们平等交流的幻想。
v 巴比伦塔项目的失败是因为缺乏交流,以及交流的结果——组织。
——摘自《人月神话》
新时代的组织架构中,“交流”和“组织”被提到相当高的一个高度——它以绝对的优势凌驾于“天资”与“勤奋”。但这并不代表后两者不重要。此处的深层含义,正是人类这个种族得以凌驾于地球上其他种族的原因。“天资”与“勤奋”的确是我们快速发展的重要因素,但真正让我们得到文明的,是团队的合作与社会的组织。
作为一个软件工程的团队成员,我们必须吸取巴比伦塔无法建成的教训。思维的碰撞产生更为有效的积累,而碰撞的频率和强度直接决定了积累的多少。