《人月神话》读书笔记 第1篇

《人月神话》读书笔记 第1篇

第1章:焦油坑

第2章:人月神话

第3章:外科手术队伍

第4章:贵族专制、民主政治和系统设计

第5章:画蛇添足

第6章:贯彻执行

第7章:为什么巴比伦塔会失败

第8章:胸有成竹

  继《梦断代码》之后,我又选了一本老师推荐的关于软件工程的书——《人月神话》,这本书读起来相对《梦断代码》就轻松多了,可能是翻译得较为通俗,并且每章前都有个寓言或者名句作为引子。并且举了相似的例子来说明,同样也列出了对立的情况来证实一些道理。

  开篇书中提到了职业的苦恼,确实编程这个过程并不全都是快乐,对于我们一些菜鸟或者初学者来说一直都是痛苦的。言归正传,“我们只有事先了解那些编程固有的苦恼,这样当他们真正出现时,才能更加坦然地面对。”那么这些苦难是怎么来的?首先,苦恼来自追求完美。每个人多多多少少都会在某些方面有强迫症,人人都希望十全十美,然而有时候却只会给自己带来无形的压力,增加负担;其次,苦恼来自他人设定目标,你的领导希望你做得天衣无缝,你的队友希望你能负担更多,你的用户希望你做得完全符合他们的心意……这些来自外界的苦恼;下一个苦恼,大家有很多大胆新颖的想法想放到程序里,或者觉得这个算法好,那就用吧,这段代码经典,也用吧,最后问题就一涌而出,接着就是寻找琐碎的bug,一项重复性的活动,有时都不知道什么之后是个尽头;最后一个苦恼,也是最无奈的,当投入大量辛苦的劳动,总算谁的意向都满足了,bug也全消灭了,时光飞速,成果却已显得陈旧过时了。这就是编程,一个许多人痛苦挣扎的焦油坑。

  只看到本书的名字时,还以为是描述嫦娥卫星的,这时一个大大的误解,“人月”简单来说其实是一种关系。联系自己,我们团队有3个人,目标是要做一个基于Windows的小游戏。之前一直在做软件分析、用户调研,前几天也确定了初步的分工,估算了完成时间。现在就要进入到实现阶段,虽然前面的每一步做得比较详细,但实际,我们一定要认识到缺乏适当的进度安排是造成项目滞后的最主要原因,它比其他所有因素加起来的影响还要大。

  “人月”主要用4个表描述:完全可以分解的任务、无法分解的任务、需要沟通的可分解任务、关系错综复杂的任务。

  最可能的是有些时候为了满足用户期望的日期而造成不符的进度和安排,或者是之前的一些懒惰想法,今天好像做得够多了,省点明天做吧;今天遇到了几个问题,查找了一堆资料,明天再实现吧;今天其他作业好多/满课,明天再做吧……这些完全脱离了“人月”关系,那团队怎么会前进?

  如何使团队运作,这看似是队长的工作,但是每个队员要给予实际的支持与合作。首先,传统的队伍将工作进行划分;第二,出现观点差异时,不可避免的需要讨论和进行相互的妥协和让步。然而在巴比伦塔的管理教训提到了一点,具备了所有的条件,为什么项目还会失败呢?总结得出,缺乏两个方面:交流,以及交流的结果——组织,这些是成功的关键。交流和组织的进行需要管理者仔细考虑,相关经验的积累和能力的提高同软件技术本身一样重要。我们实际还会出现一种情况徘徊于交流与妥协之间。话是说有在出现差异时应该提出,然后团队进行交流,适当取舍。但是我们团队里并不是每个人的水平相当,或者说整个团队都会倾向于那个能力最高的人那方,特别是在整个团队平均水平较低时,以致于这个大神占据所有的发言权,而其他人都在配合或者说是妥协;还有可能存在这么一类人,他们只是坐在那里,嘴里说:“做这个!做那个!”当然什么也不会发生,光说不做是没有用的,相反的没有人让步,慢慢的以后就没有了交流。在我们团队里有专门负责编写和记录文档的。正式的书面建议集中了注意力,强制了决策的制定,避免了会议草稿纪要方式的不一致、明确,避免了妥协和拖延。

时间: 2025-01-08 16:35:12

《人月神话》读书笔记 第1篇的相关文章

大道至简读书笔记(1)

今天读了一部分大道至简,开篇的引言让我很震惊,首先作者写这篇文章的目的很让我敬佩,不为盈利,只为让好的思想流传下去,能够让更多的人学习到有营养的东西,能够更好的为社会做贡献. 后又引用了<愚公移山>中的一段话,在这里和大家共勉: ”虽我之死,有子存焉:子又生孙,孙又生子:子又有子,子又有孙,子子孙孙,无穷匮野,而山不加增,何苦而不平?'' 这段话表现了愚公移山之决心,精神之伟大无不令我辈折服,我辈当着重学习这种精神,将这种精神在编程的道路上发扬广大,所谓“世上无难事,只怕有心人.” 我们需拥有

大道至简读书笔记之一

大道至简是一本“阐明软件工程的思想核心”的书,全书分为八章,从各个角度全面,细致而深刻地分析了工程中各个环节的由来,价值和内在关系.作者对于章节的安排是基于其对软件工程的总结给出的,而作者整体思想则体现在了其在书中提出的软件工程层状模型图里.从章节的安排可以看出,本书的前面六章,作者为我们详细解析了软件工程里各个工程元素的基本概念,从程序的实现到方法,再到过程.工程,最后到组织.第七章是承前启后的一章,因此以这一章作为样张也是比较用心的一种做法.而从第八章开始,作者为我们揭示了软件工程里各个工程

大道至简 读书笔记01

粗略的看了书本开头两篇序,以及它的章节目录,大概了解了这本书主要讲什么.其实它并不是我想象中的给我这个阶段的人讲这么压缩你的代码.怎么写的更加精妙之类的,倒像是给已经走出校门,要真正承接项目挣钱的人看的. 书中有些例子看的时候的确发人深省,比如,让作者哆嗦的那句“那我们就开始开发吧”.回想一下自己拿到老师的题目何尝不是如此,就算还没想好到底怎么实现这个问题也一定要把include.iostream之类写好再发愁.这大概是一个现在看来无伤大雅的行为吧.我们习惯于小程序的开发,对于一些复杂的无法一念

大道至简 读书笔记(1)

粗略的看了书本开头两篇序,以及它的章节目录,大概了解了这本书主要讲什么.其实它并不是我想象中的给我这个阶段的人讲这么压缩你的代码.怎么写的更加精妙之类的,倒像是给已经走出校门,要真正承接项目挣钱的人看的. 书中有些例子看的时候的确发人深省,比如,让作者哆嗦的那句“那我们就开始开发吧”.回想一下自己拿到老师的题目何尝不是如此,就算还没想好到底怎么实现这个问题也一定要把include.iostream之类写好再发愁.这大概是一个现在看来无伤大雅的行为吧.我们习惯于小程序的开发,对于一些复杂的无法一念

大道至简 读书笔记02

这本书的作者一看就知道是一位实际参与软件工程经验丰富的人,他在几十年的工作之后写下了这本书,用非常通俗的语言告诉我们那些“雷区”(想来想去不知道用什么词形容,姑且暂用). 可我想,事实上,我们现阶段作为未出校门的学生,并没有实践的经验,对这个行业也没有很深的认识,很多东西其实在我看来是有些看不懂的,所以,一条一条来看,这本书的确有我们当下的影子,有我们值得吸取的东西.但是很可惜,由于我自身高度的不足,所以看不懂的部分多过看得懂的.也许这就是不是一个层次的人就无法理解那个层次的事的情况吧. 在软件

大道至简读书笔记之三

书中曾提到从最初的简单编程开始,到现在工程团队的组织开发,实现一个软件是最终的目的,所以,实现是软件开发的本质需求.正是由于实现的需要语言工具,方法,过程和实现对象.为了实现更大规模的软件系统而有了团队组织模式,而团队的协作决定了过程模型的产生.工具的产生依旧是处于软件实现的需要.在软件工程的体系中,实现作为软件开发的本质需求和基本动因,如同上帝之手在推动这几十年来的软件工程理论体系的形成. 思考问题的方法可以是由点及面的,也可以是统揽全局的.换成业界最常用的词汇,就是“自上而下”还是“自下而上

大道至简读书笔记之二

书中曾提到客户不会用C,难道就会用UML?作为开发人员,我们当然希望用户能学习或者精通c语言,这样客户就知道开发人员正在做什么,或者,这样的客户还能以c语言的方式告诉开发人员他们究竟想要什么.可是,要求用户学习c语言明显是自杀式的行为.这样的用户学会用c语言向开发人员描述需求时,可能他就已经被老板开除了,因为没有用户会笨到愿意用c语言来描述他们的需求. c语言是程序员与计算机交流的语言,而不是他与客户交流的语言.程序员面对的是计算机,但计算机不是客户.所以,我们在做用户需求分析时,不要希望用户能

大道之简读书笔记1

这本书作者上来就引用了愚公移山里的一段话:“虽我之死,有子存焉:子又生孙,孙又生子:子又有子,子又有孙.子子孙孙,无穷匮也.而山不加增,何苦而不平?”把愚公移山看成一个团队对软件进行开发 .浓缩了项目组织者.团队经理.编程人员.技术分析师等众多角色的优秀素质.在愚公的论述中,我们看到了编程的根本:顺序.分支和循环.庞大若“愚公移山”这样的工程,都是可以通过这样简单的编程来实现的.这,就是编程的精义. 里面说过:程序=算法+结构.编程作为一种行为,只需要知道其逻辑方法就可以了.所谓编程实际上是把一

大道至简读书笔记一

本书一开始就用了愚公和李冰两人的例子.我觉得他们代表了两种编程人员:一种只会埋头编代码,花大量的时间,最终或许把功能都实现了,但是花费了大量的时间和精力.另一种善于思考,不是一上来就是敲代码,而是先对问题进行分析,找出问题的切入点,将问题简单化,能快速的将代码的功能实现,效率很高. 我认为身为一个程序员,应该学习一下李冰,一味埋头苦干,很容易导致出错,编程成果也跟不上时代.无论做什么行业,善于思考,寻找正确的切入点是很必要的素质.

大道至简 读书笔记(2)

这本书的作者一看就知道是一位实际参与软件工程经验丰富的人,他在几十年的工作之后写下了这本书,用非常通俗的语言告诉我们那些“雷区”(想来想去不知道用什么词形容,姑且暂用). 可我想,事实上,我们现阶段作为未出校门的学生,并没有实践的经验,对这个行业也没有很深的认识,很多东西其实在我看来是有些看不懂的,所以,一条一条来看,这本书的确有我们当下的影子,有我们值得吸取的东西.但是很可惜,由于我自身高度的不足,所以看不懂的部分多过看得懂的.也许这就是不是一个层次的人就无法理解那个层次的事的情况吧. 在软件