《人月神话》读书笔记
这本书的标题很有美感。开始以为写的是编程玄学,“人月”指的是什么?软件开发项目常以人月来衡量工作量,这种度量暗示着人手和时间是可以互换的。这种“人多力量大”的想法是一种一厢情愿的虚妄神话,作者布鲁克斯详细地阐释了团队与管理,强调了沟通及人的重要性,技术方面并未未过多涉及,试图从项目管理的角度去探讨软件开发的整个过程。
书中写到,人在整个软件开发过程中,人数并不决定开发的质量和时间,因此热情是前提,但并不是人越多越好。人月神话描述道人力和时间并不体现线性关系。以大量人员和较短的时间,并不能缩短软件的开发进度。一窝蜂的作业方式无助于软件生产,且会制造麻烦,产生出更差的软件。向进度落后的项目追加人力,只会使进度更加落后。因为新进的人员需要时间了解整个项目,而增加额外的沟通消耗。当有 N 个人必须在这群人之中进行沟通时,当 N 增加,其输出 M 将抵消其效益,甚至倒退(最后几天所完成的进度,远不如刚开始几天所完成的进度)。 可以软件开发的多少人参与和完成时间不成正比,过多的人参与并不一定能缩短开发时间。
作者强调团队之中沟通和配合非常重要。如果缺乏良好有效的沟通和协作,成员间难以有效的配合,团队项目的目标就无法实现。清晰的工作文档,明确的组织结构,合理的职责分配,都是大型软件项目最终成功的保证。最大化资源利用率,减少不必要的资源占用,合理规划,使软件系统在资源有限的情况下依然保证了良好的性能,从而实现良好的可伸缩性和健壮性,这能体现软件开发人员精湛的设计技巧。巧妙的数据结构往往能大幅度地俭省资源耗费,提高系统运行的性能。
编程最初对我来说,只是一项作业,从没想过编程的乐趣在哪里,不是没有感受到过,只是那些感受从没有把它当做一件事情来想,在《人月神话》中,让我看到编程不为我所知的一面,我开始更深刻了解它,了解它的乐趣所在。
编程,是一门艺术。艺术家创造杰出艺术作品的过程中,无不是怀着饱满的人情、昂扬的斗志、坚定的信念,有些著名的艺术家甚至为了一个作品而奉献出自己一生的时光。当然,如今高效率的生活方式要求我们要用最快的速度完成一个程序的编写,而不用在一些微不足道的细节上反复雕琢,但是这些艺术家的精神是程序编写者应该效仿的。只有以积极的心态去面对自己的工作,才能更快、更好的完成。