《人月神话》阅读体会(二)

读完了5-11章,收获颇丰,现在想分享一下自己的心得体会和一些要领。

作者提到有一种普遍的倾向是过分地设计第二个系统,向系统添加很多修饰功能和想法,所以第二个系统是设计师们所设计的最危险的系统。想到作者举的两个例子,一个是被嵌入到 7090 的 IBM 709 系统,709 是对非常成功和简洁的 704 系统进行升级的二次开发项目。709 的操作集合虽然被设计得如此丰富和充沛,但却只有一半操作被常规使用。Stretch 计算机的结构虽极富有创造性,极端复杂,非常高效。但不知为什么,同时也感觉到粗糙、浪费、不优雅,以及让人觉得必定存在某种更好的方法可以代替他。这些都是过分开发第二个系统带来的画蛇添足所引起的后果。就像是我自己的编程,通常第一次编得时候我会尽量的想让他简洁一点,避免出错。第二次再去丰富他。可是这个时候我经常会去纠结一些特别小的细节,或者总会不经意地再加一堆小东西,结果原本能运行的程序反而崩了,而且程序反倒变得很混乱,貌似很复杂的样子,但是根本找不到重点在哪儿,偏离了问题本身。作者提出了一些避免画蛇添足的方法,我觉得有一些对现在的我来说也是很实用的,虽然无法跳过二次系统。但可以有意识关注那些系统的特殊危险,运用特别的自我约束准则,来避免那些功能上的修饰;根据系统基本理念及目的变更,舍弃一些功能,时刻保持对特殊诱惑的警觉,不断提出正确的问题,确保原则上的概念和目标在详细设计中得到完整的体现。
       "因为左手不知道右手在做什么,从而进度灾难、功能的不合理和系统缺陷纷纷出现”。巴比伦塔的管理教训令人印象深刻,,为什么项目还会失败呢?他们还缺乏些什么?两个方面——交流,以及交流的结果——组织。他们无法相互交谈,从而无法合作。当合作无法进行时,工作陷入了停顿。交流的缺乏导致了争辩、沮丧和群体猜忌。很快,部落开始分裂——大家选择了孤立,而不是互相争吵。建立怎样的组织架构是项目成功的关键。而组织架构的成功建立离不开交流。团队应该以尽可能多的方式进行相互之间的交流。非正式、常规项目会议,会上进行简要的技术陈述、共享的正式项目工作手册。举行常规项目会议,会议中,团队一个接一个地进行简要的技术陈述。这种方式非常有用,能澄清成百上千的细小误解。一定要记住交流和交流的结果组织是成功的关键。如果想做出好的作品,一定要学会与优秀的人沟通交流,不断发现bug,不断弥补完善自己。

做好文档工作很重要。书面记录决策是必要的。只有记录下来,分歧才会明朗,矛盾才会突出。每个文档可以作为检查列表或者数据库。及时得做好文档记录,可以帮助我们都向着相同的方向前进。文档使各项计划和决策在整个团队范围内得到交流。只有书面计划是精确和可以沟通的。通过遵循文档开展工作能帮助我们清晰和快速地设定自己的方向。以前经常不理解老师为什么经常要我们写程序分析总结。现在想想通过文字记录可以帮助我去找到自己的不足点,从而确定努力的方向。而且我还可以通过对这些总结周期性的回顾,知道哪些需要重点进行更改和调整,不断完善程序。

唯一不变的就是变化本身。目标上的一些变化无可避免,事先为它们做准备总比假设它们不会出现要好得多。不但目标上的变化不可避免,而且设计策略和技术上的变化也不可避免。抛弃原型概念
本身就是对事实的接受——随着学习的过程更改设计。未雨绸缪很重要。我们在平常的编程中也是,要在提交自己的作品之前,先预想一下它可能会出现的错误,比如程序丢了怎么办,这就需要我们提前做好备份。变化是不可避免,随时有可能会发生的,我们唯一能做的就是未雨绸缪,提前做好万全的准备。

emmmmm大概就是这些。

原文地址:https://www.cnblogs.com/zzstdruan1707-4/p/10360338.html

时间: 2024-11-06 11:58:21

《人月神话》阅读体会(二)的相关文章

人月神话阅读笔记—第三章

人月神话阅读笔记-第三章 一个由一流人才组成的小型的精干的队伍比由一群平庸的程序员组成的大型团队更有效率,但是这里面有一个重要的问题:如何在有意义的进度安排内创建大型的系统. 优秀的程序员和较差的程序员之间生产效率的差距是巨大的,当一个10人的精干团队进行开发,和一个100个人的平庸程序员进行开发,前者的效率更高.但是对于效率和概念的完成性来说,最好由少数干练人员开发,而大型系统需要大量人员进行开发,但是这两者是有矛盾的,需要进行平衡. 在开发过程中,可以使用一种崭新的开发方案,类似于外科医生做

人月神话阅读笔记—第四章

人月神话阅读笔记-第四章 ------2016.6.14 概念的完整性是很重要的,为了反应一系列连贯的设计思路,可以省略一些不规则的特性和改进,不提倡独立和无法整合的系统,最需要的是在整体概念上的完整性要求. 获得概念的完整性时,会出现一种情况,编程系统使计算机更加好用,但是功能比较多的时候,软件外部描述就会比系统本身大很多:但是功能太少,不能满足需求,但是都需要满足概念上的完整性. 在进行概念的完整性时,产品设计需要由一个人或者少数几个人来实现,但是对于大型的系统,需要将设计方法.体系结构的工

人月神话阅读笔记—序言及第一、二章

初读人月神话这本书的前言和序言,觉得这本书在关于软件体系结构思想层次方面应该是很高的,而且它流传甚广,并且经过了40余年的沉淀,仍然经久不衰,可见此书的影响是相当深远的. 从目录来看,此书说的不是如何进行程序代码的编写,更多的是关于软件工程中的管理问题,从很多的具体事例,和软件工程历史上发生的一些著名事件来引出章节的内容,以及通过这些具体事件,反映了一些什么样的问题和解决的办法. 第一章的标题名为焦油坑,以开发过程中遇到的很多问题来比喻.介绍了编程系统产品所耗费的时间其实是很多的,接着介绍了作为

人月神话阅读笔记03

阅读了<人月神话>第10章 提纲掣领,里面提到的关于软件相关的开发文档的问题,使我受益颇深.以前每每写程序时,老师总会要求我们写一些需求分析,软件流程图,还有各种各样的日志文档,心里总是觉得烦不胜烦.明明程序已经写好了,文档写不写又有什么关系呢?这不是在浪费时间嘛.但是后来在写四则运算的编程题时,我就遇到了一些麻烦.刚开始我自己写又进行“翻新”的时候,我总是忘了自己之前是怎么想的,思路是怎么样的,很多时候不得不花上许多时间去重新阅读上次的代码,或者直接推翻重写.后来进行二人开发时,发现没有文档

人月神话阅读笔记07

第1章 焦油坑      焦油坑的意思说明了即使你足够强大,也无法摆脱束搏而沉到坑底.IT项目也是这样,不论是开发大型软件系统还是小型项目,都会遇到诸多复杂的问题和影响因素,项目本身就是一个足够复杂的动态系统,没有最优,只有满意.项目四要素,人员,组织环境,干系人,外部依赖和约束,风险和假设,团队,人等诸多问题都是你必须要考虑的问题,任何一个要素出现大的差错都可能导致项目失败,只有所有要素能够平衡好,团队能够协调一致才能够保证项目成功 第2章 人月神话      进度问题是IT项目管理最为关注的

人月神话阅读笔记之一

人月神话讲的主要是软件工程方面的,如何配置人力进行开发 .虽然对于软件编程我们对其了解并不多,但是对于在软件功能的实现,程序设计人员面临的客观性的困难至少我可以站在略懂的角度上去理解他们,对于一个或多个项目来说,公司大多都会搞人海战术,进度没有提前,还整天加班,最后用户不满意,开发人员整天郁闷,结果是用户对公司失去了信任,成了一槌子买卖,开发人员旧人一一辞职,新人天天引进,做法没有改变,情况没有改观,公司没有发展,这就是问题.人月之所以不能成为神话,正是因为增加人手的同时也增加了人与人之间的交流

01人月神话阅读笔记

内容源于作者Brooks在IBM公司任System计算机系列以及其庞大的软件系统OS项目经理时的实践经验.<人月神话>探索了达成一致性的困难和解决的方法,并探讨了软件工程管理的其他方面. "焦油坑"这章,作者把大型系统开发比作一个"焦油坑".作者从开发系统产品引入先分析职业的乐趣与苦恼,得出"编程,一个许多人痛苦挣扎的焦油坑以及一种乐趣和苦恼共存的创造性活动."这一结论. "人月神话"这章,指出缺乏合理的时间进度是

《人月神话》读后感------二

今天,我又继续拜读<人月神话>,听好多人说这本书是好书.我现在虽然并不能完全理解作者想要表达的含义,但是我现 在好歹是有好多感触. 今天是从第四章开始看的,这章讲的是我们在设计系统时,时候首先要考虑的是概念的完整性.随后作者讲了系统测试的最 终标准:功能与理解上的复杂程度的比值.却不仅仅是这个系统有多么丰富的功能.而且,为了概念的完整性,设计必须由 一个人或者是一个有共识的团队.对于大型的项目,将体系结构方面的工作与具体实现相分离是获得概念完整性的首要方法. 那么概念究竟是什么呢,概念上的统一

人月神话阅读笔记01

Brooks法则:向进度落后的项目中增加人手,只会使进度更加落后. 我们刚刚接触软件编程,对于在软件功能的实现.程序设计人员面临的困难我也能略微理解了.项目的时间依赖于顺序上的限制,人员的最大数量依赖于独立子任务的数量.对于一个或多个项目说,有这样一个运作规律:以前公司大多会采取人海战术,但进度没有提前,反而整天加班,最后用户不满意,开发人员整天郁闷,结果是用户对公司失去了信任.开发人员呢,旧人一一辞职,新人几乎天天引进,但做法并没有改变,情况也没有好转,公司自然没有发展. 人月之所以不能成为神

人月神话阅读笔记05

软件项目的进展并不能用简单的线性关系抽象.软件开发不是一项简单重复的体力劳动.设想如果一个人要搬东西,假设他一个人需要一个小时搬完,但是如果他再找来5个人一起搬,可能只需要十分钟.软件开发比这要复杂的多:如果一个人用十天能做完的一个项目,他做到第五天后想找人来一起做,这就不是找五个人一天就能做完的事情.也许完成项目花费的时间比十天还要多.他要花时间为新加入的队员介绍项目,为他们合理分工,如果有一人没按时完成,所有人都要停下等待--由此引出一系列不可预估的问题.复杂度大大提高.总之:从项目的人数和