人月神话阅读笔记——1

Posted on 2020-04-10 20:08  ZG龙灬珂  阅读(131)  评论(0编辑  收藏  举报

由于作为一名多年没动过笔的理科生,因此也写不出来多么深奥的东西,只能写写自己在这本书中所看到,学到的东西。

《人月传说》这本畅销了许多年的书,其中的每一章内容都很短,却又丰富又有营养。作者用非常准确而优雅的语句来描述深刻的思想。尽管这本书已经有了很多年的历史,但是书中所指出的错误在现在仍然存在很多,所以我们仍然需要从书中认识自己,找到自己。

一:焦油坑

第一章的名字便是“焦油坑”,这一东西得名于自然界的一件产物,在远古时代困住了无数的洪荒巨兽。随着人类历史的进程,并在更广阔的未来,这些焦油坑似乎是在人类历史上出现的,它们有些人一出生就似乎注定要被消灭,大多数是不会造成问题,所有问题都可以被我们通过某种方式来解决;只有当它们组合和堆积到一起的时候,我们会发现对它们将束手无策,进度就会越来越慢,最后会陷入绝望而导致事情无法被解决。

但是在这一章里作者也总结了通过创造新的、有用的事物来编程的有趣的特质在造物的河中你要学习,这样我们才会有持续去学习的乐趣。快快乐不仅满足了我们内心深处进行创建的渴望,而且还唤醒每个人内心的情感。

乐极生悲,任何事情都具有两面性,于编程而言——追求完美;由他人设定目标,提供资源和信息,寻找琐碎的BUG等等。其中有乐处,也会有不可避免的烦恼。

二:人月神话

这一章中,用了书名作为题目。换个方面来说,作者将这一章的题目作为书名,无不凸显这一章的意义是非凡的。

当我们面对项目的延期时,书中说道,我们的第一反应便是堆人,但作者通过一组数字和理由告诉读者,这一做法会导致更为严重的后果。人与月亮的交换只能是一个神说,就如同“一个孕妇怀胎十月,十个孕妇怀胎一月就能生孩子”一般无法实现。

同样作者在这一章中也以丰富的经验来对进度给出一定的建议。

1、1/3 计划

2、1/6 编码

3、1/4 构件测试和早期系统测试

4、1/4 系统测试,所有构件已完成

三:概念完整性

最好的团队组成,领头羊只有一个,其他人辅助它来完成任务。劳动分工是不同的,但是地位都是平等的。在这种团队中,我们可以做很多事,减少不必要交流,提高效率等很多无法想到的好处,其中重要的是我们还能获得概念的完整性。

在本章节中,作者在第4节的开头序言便提到了以建筑行业举例,列举建筑大师需要

1、首尾融会贯通其前辈建筑师的成果

2、同时完全掌握他们那个时代的建筑技术

3、最后还要能够恰如其分地运用这些技术,避免轻浮地炫耀,并绝不花哨。

这三点,不仅适用于建筑行业,每一个有抱负的人,在每一个行业都应该认真对待这三条规律。

四:巴比伦塔的失败

从文章中,根据作者的说法,巴比伦失败的一个原因是缺乏沟通和组织。我们能得到的教训便是在大规模软件开发中的通信的重要性。在现在生活中有很多事情的目的便是加强合作和交流。“交流和交流的结果——组织,是成功的关键”作者在这章中这样写道。沟通和组织能力是必不可少的,这一部分的相关经验的获得和改进和软件技术本身同等重要,我们不应该因失败而放弃,也不要因为成功而停滞不前。。

五:未雨绸缪

大部分的人希望一切都在自己的控制之下,所以他们每次都是试图制定一个完美的计划,并且将其顺利的实施。但是软件维护是一个熵增加的过程,所以有两步前进,一步后退这种情况。前进或后退一步都是正常的。随着维护工作的进展,用于修复原始设计缺陷的工作越来越少,用于修复由以前的维护活动本身引起的缺陷的工作越来越多。所以我们需要设计变革制度,组织框架的变革方案。

六:整体部分

在设计过程中,我们必须从上到下工作,在设计的每个阶段,尽可能使用比较高级的表达方法来表达概念和隐藏细节,直到最终的细化。通过尽可能地退出做出决策的时机,随后的行为不会受到当前所做出的决策而影响或阻碍。

作者在本章中还详细给出了控制变更的最佳实践——阶段化,定期变更。

1、直到下一次定期发布前都使用快速补丁。

2、而在当前的发布中,其将已经通过测试并进行了文档化的修补措施整合到系统平台中。

七:祸起萧墙

延迟通常不是项目灾难的结果,而是事件的简单累积,那些只会导致半天或一天的延迟,通过不断累积,最终导致整个计划延迟一年。所以对于步骤,他必须是具体的、特定的、可测量的和明确定义的。没有明确定义的阶段是一个难以管理的负担。

关键路线技术是衡量延误的重要手段,每个人都应该努力使自己的工作远离关键路线。

八:另外一面

试图保持不同文件之间的同步可能是一项吃力不讨好的任务。对于方案,“综合文件”是一个很好的解决办法,最好是自我文件。这些感觉应该类似于代码中的注释尽可能让人能够看懂。。

九:没有银弹

通过阅读这章课一了解到,这一方面涉及到软件工程中的根本和次要问题。复杂性,一致性,可变性以及不可变性这四个根本特性决定了软件开发中很难出现银弹。而且作者甚至觉得人们对银弹的追求,有点类似于古往今来对炼金术的追求。因为这种追求也促进了效率的发展。

 

     以上便是通过阅读各个章节所得到的一定的体会,由于自己的理解在某种程度还是过浅,因此也是借鉴了一些大佬的理解才得以看懂。