这本书讲述了几十年前软件专案管理问题与经验,作者将大型系统开发比作一个焦油坑,我原本以为软件开发还是比较容易的,有了新想法,就会有新的软件产品出现,但是却不知道项目不能满足目标、进度、预算的要求,就不能成为一个好项目。
程序,通过不同的途径转变成不同的产物,使之变得更有用,成本更高。但是只有变成系统产品才成为真正有用的产品。
编程不是人越多越好,人与时间不成正比。人越多,所需的时间不一定越少;人少,项目完成时间不一定越长。在外科手术这一章节中提到,在接受相同的训练、同样都是两年资历的情况下,优秀专业程序员的生产力要比差劲的程序员好上十倍。使用少数优秀的人员的团队是最棒的——尽可能用最少的人。两人团队,其中一人当领导者,这通常是最佳的用人方式。以少数优秀人员的团队开发真正大的系统就太慢了。绝大多数大型软件系统的经验显示,使用一堆人蛮干的方式最耗成本、最慢、最没有效率,做出来的系统在概念上也最不完整。
作者主张概念完整性在系统设计中是最重要的考虑因素,他以OS/360系统的开发证明了自己的观点。完整的概念使得系统设计过程更加有条理,分工更加明确,对系统的各部分设计更加明确,再出现错误时更加容易的去改正。
书中讲到了开发第二个系统所带来的后果,在开发第一个系统时结构师倾向于精炼和简洁,他会仔细谨慎地工作。第二个系统是设计师们所设计最危险的系统。曾在第一次系统中被小心谨慎地放在次要位置的向系统中添加很多修饰功能和想法将会泛滥。OS/360的设计小组成员来自1410-7010磁盘操作系统、Stretch操作系统、Mercury实时系统项目和7090的IBSYS,几乎没有人有两次以上的操作系统经验,OS/360是典型的开发第二次所引起的后果。结构师无法跳过第二次系统,但他可以有意识的关注这个系统的特殊危险,运用自我约束规则避免功能上的过于修饰,根据系统基本理念及目的变更,舍弃一些功能。这些对于每一个软件学习者都是很受用的。
“经验是最好的老师”、”经验是最好的老师,但智者还能从其他的地方有所收获“,经验固然最好,但是除了经验,我们还要学还从其他方面获取知识。
在这本书中,虽然讲述了很多案例,但都离不开团队、人和沟通。无论任何事情,人的重要性,人之间的沟通都是不可缺少的。在软件开发中,对于大型的软件工程项目仍然强调了人的重要性。作者在开篇就在讲开发人员的职业乐趣(自己选择软件工程的原因也是喜欢编出程序的乐趣),后面又通过巴比伦塔讲沟通的重要性,又在外科手术队伍中讲团队的组建和分工。这些都涉及到了团队中的人和交互,只有一个有了积极心态和热情的沟通团队,才可能成就一个伟大的团队。最后的没有银弹再次肯定了开发工作是一种高智力的脑力工作。
我认为《人月神话》这本书十分适合软件程序设计者,虽然他简述了许多几十年前的事,但对于现在,仍具有教育意义,它使我们提前意识到软件开发过程中的一些弊端。
标签:02,经验,读书笔记,系统,开发,团队,OS,360 From: https://www.cnblogs.com/zbw-m/p/17363324.html