人月神话这本书上个暑假也看过一部分,这次在老师的推荐下又看了看,这本书的年龄已经很大了,现在都有40周年纪念版了,但它这么多年来依然是行业内的经典之作。它并没有直接讲述编程的方法之类的问题,而是更加深入的对软件这个行业做出了分析,其中一些理论、观点至今对我们有很大的帮助。
作者一开始提出的编程的乐趣和苦恼,我深感赞同。我觉得说出了我的心里话。虽然我现在并没有参与过什么项目,但是在对C、C++和Java的学习过程中,我们虽然编的软件不多,但是也有一些自己的理解,我们享受编程的乐趣,享受成功的喜悦,但同时也有苦恼,查不出bug,想不到方法,都是我们的苦恼。我也认为“编程的核心乐趣是在一种极其容易操作的介质上进行创造。而苦恼一方面是要违背本性的在编程过程中追求完美,一方面是现实中的创造往往受到多种外界条件的制约”。创造性的过程必须在一定的限制条件下去创新,这个行业是体力与脑力的结合。
这本书对于现阶段的我只能是扩大了知识面,书中也有很多名词并没有听说过,我认为这本书的核心思想大概就是说“一个人十个月开发的完的项目,十个人一个月是做不完的。越大型的项目,花在有效编码上的时间越少。作为一个面向市场的成熟产品的开发,真正大量的时间花在计划、团队内部沟通、测试、整合、文档之上。” 人月的不可替代性。人才的流失对于一个公司的影响是很大的,项目的关键阶段,额外的增加人力不能减少所需要的时间,因为额外的培训需要的时间。关于进度安排,作者的经验是为1/3计划、1/6编码、1/4构件测试以及1/4系统测试。团队之间要通过所有可能的途径进行相互之间的交流沟通。
交流是成功的关键。交流和组织的技能需呀管理者仔细考虑,相关经验的积累和能力的提高同软件技术本身一样重要。为落后进度的项目添加人手因为成本的增加(重新分配任务的中断,培训新人,额外的沟通)导致进度会更加落后。现在我们大都是自己编自己的程序,但交流的重要性应该是不言而喻的。诺亚方舟的成功和巴比伦塔的彻底失败,沟通交流的重要性可以由二者的对比很好的体现。
人月神话作为一本IT行业的书籍,并没有像其他IT书籍那么晦涩枯燥,而是举出了一些像巴别塔、焦油坑这样生动的例子,软件开发团队与外科手术队伍的类比,与化学工业、建筑行业的对比也非常棒。这本书以全局视角纵观软件工程,将软件工程管理的困难、原因、解决办法,一一道来。它使我更加了解了软件工程这个行业。