《人月神话》前十章阅读笔记
首先,《人月神话》这本书从编程的乐趣入手认为这种快乐是一种创建事物的纯粹快乐,这种快乐来自于开发对他人有用的东西。,快乐来自于整个过程体现出的一股强大的魅力,这种快乐是持续学习的快乐,这种快乐还来自于在易于驾驭的介质上工作但同时没有一份职业仅仅包含乐趣,这份职业的苦恼在于追求完美的过程中,一个不完美的程序时无法运行的,其次苦恼还包含有他人设定的目标和对他人的依赖,是最苦恼的点是寻找bug,最后一个痛点是当产品开发完后却已经过时。这形成了一个程序设计的焦油坑。“这,就是编程,一个许多人痛苦挣扎的焦油坑以及一种乐趣和苦恼共存的创造性活动。对许多人而言,其中的快乐远远大于苦恼。本书的以下章节将试图搭建一些桥梁,为通过这样的焦油坑提供一些指导。”
其次,程序设计所需要的时间和估算时间的差距很大,很少有能够按照设想不出现错误平稳开发的程序,导致程序开发过程中的时间延误,单纯的增加人手有时并不能解决这个问题,甚至会导致花费时间的延长,倘若沟通成本大于编程成本,所以人月这一关于项目规模的定义,其中人数的增长不一定和月数减少呈现正相关。因此要对一个项目开发有一个合理的进度安排。
第三章是关于一个项目组织队伍中的人月任务分配问题,一个优秀的程序员和较差的程序员之间生产效率之间的差距肯会是10:1的差距。一个优秀的十人队伍应当以下面的队伍分配。
更大的团队可以是在此基础上的发展。
第四章和第五章是关于一个系统应当具有概念上的完整性,功能上的简洁性,在缩短开发时间的同时,让系统自成一体,这样系统的开发能够快速得到实现。
一个完整的工程系统在开发时需要手册的支持,需要去贯彻执行,一个完美的手册不仅需要完整的概念,系统的定义,还需要及时更新,通过周例会和年会的方式的将遇到的问题更新和解决。最后就是经历系统测试,设立测试小组。
在第七章中,作者强调了沟通的重要性缺少沟通和交流则会导致分崩离析,在一个组织中技术主管和产品负责人的关系也决定这产品的质量。本书中作者认为技术主管作为总指挥,产品负责人充当其左右手是一种非常好的组织方式,能够有效的解决组织和交流中存在的问题。
第八章主要讲述了在产品实际生产过程中人的实际工作效率,和时间分配问题,通过列举数据的方式直观清晰的展示了一个完整的实际产品开发过程中的生产效率和生产实际能力。以及如何缩短生产时间。
第九章主要讲述了产品规模和程序空间问题,我们不能一味追求低成本,放弃更加合适的选择,在产品规模估算时需要经过多方面的考虑结合实际做种做出深思熟虑的决定,在指明模块有多大的同时,确切定义模块的功能。。从而为产品规划出适合产品的规模和实现方法。认识到编程需要技术积累,需要开发很多公共单元构件。每个项目要有能用于队列、搜索、散列和排序的例程或者宏库。、于每项功能,库至少应该有两个程序实现:运行速度较快和短小精炼。上述的公共库开发是一件重要的实现工作,它可以与系统设计工作行进行。数据的表现形式是编程的根本。
第十章主要讲述产品的开发需要围绕中心主题来进行,一份正式的文档能够有效的记录下来,分歧才会明朗,矛盾才会突出。书写这项活动需要上百次的细小决定,正是由于它们的存在,人们才能从令人迷惑的现象中得到清晰、确定的策略。