本周我读的书是Frederick P.Brooks所著的《人月神话》这一十分著名的书籍。这是一本非常典型的外国科技作品:富含了幽默感和形象生动的比喻:“焦油坑”、“人月神话”、“外科手术队伍”,看到这些词,你会很快在脑海中建立起一个很清晰的画面,同时也会产生很多疑问:这个东西,这幅画面的特点是什么?为什么要提起它?作者又想让我关注什么?而当我们仔细阅读其中的内容,很快就会发现,怀揣着这些问题的我们,可以迅速的感知到作者想要表达的重点是什么,同时还建立起了对这个概念的一个联想画面,这不仅有助于我们去理解,去体悟,更能令我们的阅读妙趣横生,我想,这样一本书,他的名声在外,绝不是靠弄虚作假作出来的。
被作者绘声绘色的描述方式所吸引,我一下子就读了好几章,能被称为“一本在软件领域绝无仅有,20余年畅销不衰的必读经典”,不得不说人月神话的吸引力是巨大的。
第一章一开始,作者十分风趣的将软件开发的过程比喻为焦油坑,让陷入其中的猛兽越是挣扎,越是难以挣脱束缚,最终陷入坑底,而在软件开发的过程中,软件开发团队就像是猛兽,在由各种问题交织在一起的开发过程面前,就好像是在焦油坑里打滚的猛兽,如果只用蛮力,那是不可能成功的。软件开发的困难,更是让无数的企业和团队淹没在了焦油坑中。紧接着,作者带我们领略了软件开发这个职业的乐趣和苦恼。作者将软件开发类比为了艺术家创作一项作品,力量蕴含在创造的过程中,很多时候是痛苦的,但却是富含深意和力量的。在产品被创造出来以后,那样的快乐是比之前的痛苦更具震撼力的。
在第二章,作者仔细的讲述了人月的关系,也让我恍然大悟何谓人月神话。人月,是指在估计和进度安排中使用的工作量单位。看似包含了软件开发过程中的最重要的因素,可是实际上“成本的确随开发产品的人数和时间的不同,有着很大的变化,进度却不是如此。因此我认为用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。”换句话来说,就是完成工作的人数与时间使不能进行简单互换的。要理解这一点也很简单,毕竟不是每个人都是老鸟,毕竟不是每个人都是工作狂(误)。更进一步地来说,在人数过多的情况下,很可能会出现中国的传统谚语中所描述的那种“三个和尚没水喝”的情况(互相甩锅,推卸责任)。结合我参与过的robgame的编程经历想一想,的确如此,在有好几人分块进行编程时,最大的麻烦就是组合成一个完整的项目联合调试的时候。编写程序可能只用一天的时间,而代码的整合与测试往往需要好几天。各个部分分别测试都没有问题,但是联合起来,总会由于接口、变量名等因素的冲突产生BUG。只有团队之间的通力合作,才是加快进度的可能方法,书中说“软件系统也是人类创造的错综复杂的事物。所以只有在一个团队的沟通了解,通力协作和努力之下,才能做出更加完善的软件作品!”