人月神话阅读笔记01
本篇是人月神话阅读笔记的第一篇。
1-8章
1.焦油坑
焦油坑的意思说明了即使你足够强大,也无法摆脱束搏而沉到坑底。
可供大部分人使用的软件开发起来可不是一件简单的事情
乐趣与苦恼是这个行业避不开的话题
学习,创造,服务的乐趣
难题,约束,成果面临过时的苦恼。
2.人月的启示
Brook 法则:向进度落后的项目中增加人手,只会使进度更加落后。
缺乏合理的时间进度是造成项目滞后的最主要原因,它比其他所有因素
加起来影响还大。但是系统的各个任务存在依赖关系,任何一个任务的
延期都必将导致后续任务的延期,这点在本学期编程实验体现的淋漓尽致,
在实验没有做完之前,我没有动过别的课本上的课业。对于大型项目,
书中给出了推荐的工作量比例分布:计划1/3,编码1/6,单元测试和集成测试1/4,1/4系统测试。
3.外科手术队伍
类似于外科手术队伍,作者这样描述软件团队:
最好和最差人员生产率比在10:1,在运行效率和空间上有5:1的惊人差距。
中小型往往有着最高的效率
大型软件系统不得不投入更多人来保证进度的可靠,那如何高效沟通便成了问题,
书中说明体系结构设计师要抽取出来组成核心设计团队,其他人员是实现人员,
这样沟通的范围将限制到到这20个人的核心团队中,以保证高度的概念完整性,大大的提高沟通效率。
4.贵族专制和民主政治和系统设计
概念完整性是系统设计中最重要的考虑因素,为了获得概念完整性,
设计必须由一个人或者具有共识的小型团队来完成,这需要每个人或多
或少的做出牺牲。保持纪律、制定规则。体系结构、设计实现、物理实现
的许多工作可以并发进行。
5.画蛇添足
架构师们在第二个系统往往过于追求完美而导致画蛇添足,如花哨的界面
和不实用的功能,复杂性太高大大增加开发成本等。
6.贯彻执行
历史上伟大的事物都有相同的特质:严格遵守纪律和强大的执行力
在本学期的实验中,往往有这些情况发生:有纪律无执行,有规程不实践,
敏捷软件开发的站立会议,结对编程等往往都有更高更严格的纪律要求,
越重视纪律,往往就越享有越大的自由。
7.为什么巴比伦塔会失败?
这个问题我相信大家都会知道,因为缺乏沟通。软件开发同样需要高效的沟通,
这是核心,沟通关于项目的愿景,目标,进度,问题等等。
8.胸有成竹
每个人都想胸有成竹,但是软件人如何做到胸有成竹?
答案是估算。采用适当的估算方法可以比较准确的估算出项目的各个方面,
当掌握的信息量足够大,便也就胸有成竹了。