读后感——人月神话

Posted tqylqt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读后感——人月神话相关的知识,希望对你有一定的参考价值。

《人月神话:软件项目管理之道》(英语:The Mythical Man-Month: Essays on Software Engineering)是由IBM System/360系统之父佛瑞德·布鲁克斯所著经典文集,全书讲解软件工程、项目管理相关课题,被誉为软件领域的圣经,内容源于作者布鲁克斯在IBM公司System/360家族和OS/360中的项目管理经验[2]。该书于1975年首次发行(ISBN 0-201-00650-2),并于1995年重新发行纪念版(ISBN 0-201-83595-9),其中新增了对〈没有银弹〉一文的评论和回应,与4个额外的新章节

        其实当我读到《人月神话》第五章的时候,我还是对这本书的内容不大明白。就只知道一点:“这是一本关于管理性软件的书,说到了自1975年的一些管理观点和见解,过了30多年仍然适用。”管理方面的知识我没大看懂,只知道这是一本令人反复研读的书,每读一遍便有不同的收容。对我的影响便是“做事做人”的一些方式方法的领悟和思维的一些开阔。Brooks认为,一个整洁、优雅的变成产品必须向它的每位用户提供一个条理分明的概念模型,这个模型描述了应用,实现应用的方法以及用来指明操作和各种参数的用户界面使用策略。概念的完整性是易用性中最重要的因素。而架构师,则是负责保证产品所有方面的概念完整性的,架构师设计的是能够让用户理解产品概念的模型,这包括所有的功能的详细说明以及调用和控制的方法。它就像电影的导演一样。

       这就让我想到了自己对于编程,有其乐趣和苦恼。创建事物的快乐 ,开发对其他人有用的东西的乐趣 ,将可以活动、相互啮合的零部件组装成类似迷宫的东西,这个过程所体现出令人神魂颠倒的魅力 ,面对不重复的任务,不间断学习的乐趣 ,工作在如此易于驾驭的介质上的乐趣——纯粹的思维活动,其存在、移动和运转方式完全不同于实际物体。将做事方式调整到追求完美,是学习编程的最困难部分;由其他人来设定目标,并且必须依靠自己无法控制的事物(特别是程序);权威不等同于责任实际情况看起来要比这一点好一些;真正的权威来自于每次任务的完成任何创造性活动都伴随着枯燥艰苦的劳动,编程也不例外 人们通常期望项目在接近结束时,(bug、工作时间)能收敛得快一些,然而软件项目的情况却是越接近完成,收敛得越慢产品在即将完成时总面临着陈旧过时的威胁。软件开发的多少人参与和完成时间不成正比,过多的人参与并不一定能缩短开发时间。如战争,部队多,人多并不是关键,更多需要武器的先进,战术,兵多后方便的补给就得多。如是参与软件开发的人增加,软件的花费将提高,刚参加这需要时间了解项目,给软件管理带来了不协调。

         最后是第二系统效应,不但消耗了巨大花费,而且将没有经验的开发人员拉进开发是一件很囧的事情。并不会给软件管理带来好处。软件系统可能是人类创造中最错综复杂的事物,往往一个很小的功能,其实也需要开发人员的架构设计方面的完善,对其它模块的影响及扩展,以及代码编写工作。用户在前台可能看到的只是几个文字,实际是中开发人员日夜奋战的结果。很多时候,客户的需求修改,在他们眼里看起来是如此地Easy,可他们却忽视了很多他们看不到的因素---当然,这不是说怪我们的客户。我只是觉得,只有大家彼此沟通,彼此理解,才会做出精品来。

《人月神话》读后感

  一开始听到《人月神话》这个书名的时候,受到“神话”二字的影响,我以为这里的“人月”是超乎正常认识的名词,没有想到,这里的“人”还是那个人,这里的“月”也还是那个月,而这本书,则是剥去神话外衣后对软件工程更深刻的解读和诠释。

  读完《人月神话》后,有几个比较深的感受:

一、关于焦油坑、编程的乐趣以及乐观主义

  之所以首先想谈这一点,是因为这本书在开头就用这几条戳中了我的心头。我喜欢编程,因为一台电脑就可以让我的思维无限的延伸下去,亦如作者所说,“是一种创建事物纯粹的快乐,……,整个过程体现出魔术般的力量”,同时,我也是乐观主义,每次调试程序,我总会认为程序会按照我设计的思路正常的运行下去,但是现实往往总是给我一巴掌。被作者一语点中的我,感到这本书实实在在的描述了很多我已知和未知的内容。但在本书的开头作者用史前巨兽在焦油坑中挣扎的场面来比喻过去几十年的大型系统开发,让刚接触这本书的我立即建立了一种印象——开发大型系统的困难和繁杂程度是难以想象的,他仿佛在告诉我,|“伙计,这没你想的那么简单”。

二、关于团队结构

  我对团队的概念是从竞赛开始的,我参加了很多届的数学建模,数学建模三个人组队,一个编程,一个论文,一个建立模型和思考下一步的方向。这在建模的团队结构里是最合理的,但是当我真正参与其中的时候我就发现,没想象中那么简单。即便我们有了模型、有了下一步的方向,但是写论文的人和编程的人也很难将思路理解通透,换言之也就是这三方之间的交流还不够;同时,我们之间缺少统一的标准,这也导致论文和编程之间很多关系的不统一,所以在我读到关于巴比伦塔为什么会失败的时候我有很真切的感受。在团队里,交流和项目工作手册是十分重要的。而《人月神话》中,作者给出了一个合适的团队结构,名为“外科手术队伍”,他们有各自的分工,作者详细的描述了各个角色的职能,这让我想到我参加的一个相对成功的竞赛,是一个电子类的竞赛,团队总共有5个成员,我们有各自的分工,有负责各类竞赛流程关注、事物安排和答辩的人员,有负责编程和调试的软件人员、有负责硬件连接的人员、有负责带领作品设计的人员,他们的职务分工类似于作者Brooks所述的外科医生、副手、管理员、语言专家,在这样的团队中参加竞赛,结果是我们拿了这个竞赛的一等奖,同时在竞赛过后,大家普遍感觉到整个过程十分的轻松愉快,每个部分都有人按部就班的完成,但是要达到这样的结果,缺少我们中的任何一个部分都不行。

三、关于系统完整性

  作者强调的贵族专制让我更加充分的认识到结构完整的重要性,在进行这一部分表述的时候,作者拿大教堂做比喻,“风格的一致和完整性来自8代拥有自我约束和牺牲精神的建筑师们,他们每个人牺牲了自己的一些创意,以获得纯粹的设计”,当更优的创意、想法和现行的系统基本概念发生冲突的时候,就应该抛弃这种创意,如果创意过于重要,则需要抛弃原来的设计,重新整合系统的基本概念。这让我认识到自己曾经很多想法之所以无法落地,或者无法被上级采纳,很大的原因可能是它不适用于现行的制度体制,这也可能是国内当前很多方面都在进行改革的原因,同时也包括了我国经济的结构性调整,其中或多或少都涵盖了这方面的理论。

四、关于干将莫邪

  我认为工具只是工具,它只是为了帮助人完成任务和达到目的而已,但是看到作者的论述,我认识到工具在团队中通用化的重要性,“项目的关键问题是沟通,个性的工具妨碍——而不是促进沟通”。

五、前进与后退

  Brooks教授强调了两种模式,一是前进两步后退一步,二是前进一步后退一步,这种动态变化的过程让我对软件维护有了全新的理解,所谓软件的bug,并不完全是软件完成就存在的那一部分,软件维护人员修复了原有的bug,就会引入新的bug,这是一种永无止尽的修补过程,bug还伴随着用户数量的增长而增长,因此前进中伴随着后退,然而这种过程并不是动态平衡下去的,在系统软件开发的过程中,熵在不断的减少,但是伴随这软件维护过程,熵是不断增加的,伴随着这种熵增加到了一定的程度,整个系统会逐渐面目全非,因此需要设计新的系统或者软件。这在我理解来看,可能就是很多系统和软件在经历过很长一段时间之后就会发生一次大更迭的原因。

六、关于里程碑

  生活中我常常遭遇或者自己就成了“差不多先生”,“完成了90%?99%?,都差不多啦”,我会用这样的话来安慰自己,但是里程碑的意义,是100%,这让人无可辩解,必须仔仔细细的完成好任务,“里程碑的选择只有一个原则,那就是,里程碑必须是具体的、特定的、可度量的事件,能够进行清晰定义”,在完成任务的时候,只有设置这样的里程碑,才能让计划更切实的落地。

以上是关于读后感——人月神话的主要内容,如果未能解决你的问题,请参考以下文章

《人月神话》读后感

《人月神话》读后感之一

《人月神话》读后感

《人月神话》读后感

《人月神话》-读后感3

《人月神话》读后感