首页 > 其他分享 >人月神话(1)

人月神话(1)

时间:2023-06-02 09:13:19浏览次数:33  
标签:本书 经验 神话 系统 开发 团队

第一次看到《人月神话》这本书,若不是老师推荐,还以为是本神话小说呢!由于对软件工程了解的不多,对这本书的解读不深刻。不过,从很多方面可以了解到这是一本畅销的、具有深远意义的书。

这本书讲述了几十年前软件专案管理问题与经验,作者将大型系统开发比作一个焦油坑,我原本以为软件开发还是比较容易的,有了新想法,就会有新的软件产品出现,但是却不知道项目不能满足目标、进度、预算的要求,就不能成为一个好项目。

程序,通过不同的途径转变成不同的产物,使之变得更有用,成本更高。但是只有变成系统产品才成为真正有用的产品。

编程不是人越多越好,人与时间不成正比。人越多,所需的时间不一定越少;人少,项目完成时间不一定越长。在外科手术这一章节中提到,在接受相同的训练、同样都是两年资历的情况下,优秀专业程序员的生产力要比差劲的程序员好上十倍。使用少数优秀的人员的团队是最棒的——尽可能用最少的人。两人团队,其中一人当领导者,这通常是最佳的用人方式。以少数优秀人员的团队开发真正大的系统就太慢了。绝大多数大型软件系统的经验显示,使用一堆人蛮干的方式最耗成本、最慢、最没有效率,做出来的系统在概念上也最不完整。 

作者主张概念完整性在系统设计中是最重要的考虑因素,他以OS/360系统的开发证明了自己的观点。完整的概念使得系统设计过程更加有条理,分工更加明确,对系统的各部分设计更加明确,再出现错误时更加容易的去改正。

书中讲到了开发第二个系统所带来的后果,在开发第一个系统时结构师倾向于精炼和简洁,他会仔细谨慎地工作。第二个系统是设计师们所设计最危险的系统。曾在第一次系统中被小心谨慎地放在次要位置的向系统中添加很多修饰功能和想法将会泛滥。OS/360的设计小组成员来自1410-7010磁盘操作系统、Stretch操作系统、Mercury实时系统项目和7090的IBSYS,几乎没有人有两次以上的操作系统经验,OS/360是典型的开发第二次所引起的后果。结构师无法跳过第二次系统,但他可以有意识的关注这个系统的特殊危险,运用自我约束规则避免功能上的过于修饰,根据系统基本理念及目的变更,舍弃一些功能。这些对于每一个软件学习者都是很受用的。

“经验是最好的老师”、”经验是最好的老师,但智者还能从其他的地方有所收获“,经验固然最好,但是除了经验,我们还要学还从其他方面获取知识。

在这本书中,虽然讲述了很多案例,但都离不开团队、人和沟通。无论任何事情,人的重要性,人之间的沟通都是不可缺少的。在软件开发中,对于大型的软件工程项目仍然强调了人的重要性。作者在开篇就在讲开发人员的职业乐趣(自己选择软件工程的原因也是喜欢编出程序的乐趣),后面又通过巴比伦塔讲沟通的重要性,又在外科手术队伍中讲团队的组建和分工。这些都涉及到了团队中的人和交互,只有一个有了积极心态和热情的沟通团队,才可能成就一个伟大的团队。最后的没有银弹再次肯定了开发工作是一种高智力的脑力工作。

我认为《人月神话》这本书十分适合软件程序设计者,虽然他简述了许多几十年前的事,但对于现在,仍具有教育意义,它使我们提前意识到软件开发过程中的一些弊端.

标签:本书,经验,神话,系统,开发,团队
From: https://www.cnblogs.com/zhaoshengfu/p/17450799.html

相关文章

  • 《人月神话》阅读笔记08
    第四章:软件产品的特性:这部分可能会探讨软件产品的各种特性,如功能性、可靠性、可维护性、可扩展性等。布鲁克斯可能会强调软件产品质量的重要性,并讨论如何确保产品满足用户需求和质量标准。开发过程和产品质量:这一部分可能会讨论开发过程与产品质量之间的关系。布鲁克斯可能......
  • 人月神话阅读笔记02
    《人月神话》是一部文学作品,融合了神话和现实主义元素,以及对人类生活和情感的探索。阅读这本书,我被它深邃的哲学思考和富有想象力的叙事所吸引,同时也对作者对人类存在和情感的揭示留下了深刻的印象。首先,这本书通过描绘一个奇幻的世界,将读者带入了一个充满神秘和想象力的环境。故......
  • 人月神话读后感
    《人月神话》是一本探讨软件工程管理的经典书籍,它揭示了软件开发中的一些常见的误区和问题,并提出了一些有益的原则和方法。作者从多个角度分析了影响软件开发效率和质量的因素,如项目规模、时间、人员、沟通、设计、测试等,并提出了一些实用的建议和技巧。我认为这本书对于软件开发......
  • 《人月神话》阅读笔记七
    1、保持进度透明可见我们的团队在做项目的过程中,总是少不了实时汇报自己负责的部分进度,我们有时可能会担心,如果我们向上级或者负责人汇报了我们的完成进度,就有可能会因为某些问题扰乱我们的进度和计划。其实,如果我们隐瞒不报,就有可能助长我们的侥幸心理,从而在更大程度上影响我......
  • 06人月神话阅读笔记
    第11章未雨绸缪不变只是愿望,变化才是永恒。——SWIFT。普遍的做法是,选择一种方法,试试看;如果失败了,没关系,再试试别的。不管怎么样,重要的是先去尝试。——富兰克林D.罗斯福。11.1化学工程师很早就认识到,在实验室可以进行的反应过程,并不能在工厂中一步实现。一个被称为“实验性......
  • 05人月神话阅读笔记
    第9章削足适履9.1程序有多大?除了运行时间以外,它所占据的空间也是主要开销。当系统设计者认为对用户而言,常驻程序内存的形式比加法器、磁盘等更加有用时,他会将硬件实现中的一部分移到内存上。相反的,其他的做法是非常不负责任的。由于规模是软件系统产品用户成本中如此大的一个......
  • 04人月神话阅读笔记
    第7章为什么巴比伦塔会失败?7.1巴比伦塔项目的失败是因为缺乏交流,以及交流的结果——组织。他们无法相互交谈,从而无法合作。当合作无法进行时,工作陷入了停顿。7.2因为左手不知道右手在做什么,所以进度灾难、功能的不合理和系统缺陷纷纷出现。随着工作的进行,许多小组慢慢地修改自......
  • 01人月神话阅读笔记
    第1章焦油坑1.1编程系统产品(ProgrammingSystemsProduct)开发的工作量是供个人使用的、独立开发的构件程序的九倍。我估计软件构件产品化引起了3倍工作量,将软件构件整合成完整系统所需要的设计、集成和测试又强加了3倍的工作量,这些高成本的构件在根本上是相互独立的。1.2编程......
  • 02人月神话阅读笔记
    第3章外科手术队伍3.1同样有两年经验而且在受到同样的培训的情况下,优秀的专业程序员的工作效率是较差程序员的十倍。(Sackman、Erikson和Grand)需要协作沟通的人员的数量影响着开发成本,因为成本的主要组成部分是相互的沟通和交流,以及更正沟通不当所引起的不良结果(系统调试)。这一......
  • 03人月神话阅读笔记
    第5章画蛇添足5.1尽早交流和持续沟通能使结构师有较好的成本意识,以及使开发人员获得对设计的信心,并且不会混淆各自的责任分工。面对估算过高的难题,结构师有两个选择:削减设计或者建议成本更低的实现方法——挑战估算的结果。后者是固有的主观感性反应。此时,结构师是在向开发人员......