浅读人月神话(完)

news/2024/11/24 8:02:37/

读书笔记:今天翻书读完了人月神话,总的来说有些囫囵吞枣。在后半本书中,Brooks的表达中有更多的悲观主义色彩,软件是难以开发而且不存在银弹的,但追求稳定的质量,更高的效率以及可控的成本是项目经理是需要矢志不渝追求的目标,就像作者所说——人就是一切。持续学习,保持进取,共勉。

整体部分1. 精确定义产品细节有助于减少BUG产生
2. 自上而下的设计是保证系统完整性的一种实施方式
3. 重视对变更的控制以及定期变更
祸起萧墙1. 警惕微小的落后对进度带来的影响,这个微小的落后可能演变为灾难性偏离
2. 确定好的里程碑,不好的里程碑反而是团队的负担
3. 减少角色冲突和鼓励状态共享和猛地拉开地毯都是向老板告知地毯下污垢的办法
另外一面1. 作为程序文档的流程图意义不大
2. 把文档整合到源代码中,注意编码规范
没有银弹-软件工程中的根本和次要问题1. 复杂度、一致性、可变性、不可见性构成解决软件问题的根本困难
2. 从人员、编码方式、定义产品上依然有诸多方法可以取得稳定进步
再论《没有银弹》1. 解决软件构件根本困难的最佳方法是不进行任何开发,重用是一个解决问题的良好方法,但是仍需良好的设计和文档
2. 复杂性依然是软件行业最大的限制,我们可以在软件生产率上取得逐步的进展,而不是等待不大可能到来的突破
20 年后的人月神话1. 核心观点是概念完整性和结构师
2. 未雨绸缪当中为舍弃而计划是错误的!应当逐步舍弃和设计,而不是一次性完成替换。
3. 增量开发更贴近我们的开发过程

名词注解:

1. 祸起萧墙:“祸起萧墙”的原义是祸乱产生于家中,比喻灾祸、变乱皆由内部原因所致

2. 银弹:消灭狼人的工具,书中把“一种可以使软件成本像计算机硬件成本一样降低的方法”比作银弹。

摘录:

1. 里程碑的选择只有一个原则,那就是,里程碑必须是具体的、特定的、可度量的事件, 能够进行清晰定义。

2. 对计划和控制职能进行适度的技术人力投资是非常值得赞赏的。它对项目的贡献方式 和直接开发软件产品有很大的不同。计划和控制小组作为监督人员,明白地指出了不易察觉 的延迟,并强调关键的因素。他们是早期预警系统,防止项目以一次一天的方式落后一年。

3. 我认为相应的解决方案是“合并文件”,即把文档整合到源代码。这对正确维护是直接 有力的推动,保证编程用户能方便、即时地得到文档资料。这种程序被称为自文档化

4. 没有任何技术或管理上的进展,能够独立地许诺十年内使生产率、可靠性或简洁性获得数量级上的进步。

5. 我认为软件开发中困难的部分是规格化、设计和测试这些概念上的结构,而不是对概 念进行表达和对实现逼真程度进行验证。

6. 解决软件构建根本困难的最佳方法是不进行任何开发。软件包只是达到上述目标的方 法之一,另外的方法是程序重用。实际上,类的容易重用和通过继承方便地定制是面向对象 技术最吸引人的地方。

7. 软件工程的焦油坑在将来很长一段时间内会继续地使人们举步维艰,无法自拔。软件 系统可能是人类创造中最错综复杂的事物,只能期待人们在力所能及的或者刚刚超越力所能 及的范围内进行探索和尝试。这个复杂的行业需要:进行持续的发展;学习使用更大的要素 来开发;新工具的最佳使用;经论证的管理方法的最佳应用;良好判断的自由发挥;以及能 够使我们认识到自己不足和容易犯错的——上帝所赐予的谦卑。


http://www.ppmy.cn/news/21626.html

相关文章

STM32开发(1)----stm32f103c6t6开发板介绍和环境搭建

stm32f103c6t6开发板介绍一、stm32f103c6t6芯片资源介绍STM32 的命名规则二、最小系统开发板介绍三、开发板基本使用方法软件安装MDK5 安装安装STM32芯片包安装licenseUSB转串口驱动安装四、本文小结一、stm32f103c6t6芯片资源介绍 stm32f103c6t6 是一款基于 ARM Cortex M3 内…

智慧物业管理系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

STL——string类

一、标准库中的string类 1.string类文档介绍 (1)字符串是表示字符序列的类。 (2)标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特…

requests

基本使用 response的属性以及类型 类型 :models.Responser.text : 获取网站源码r.encoding :访问或定制编码方式r.url :获取请求的urlr.content :响应的字节类型r.status_code :响应的状态码r.headers :响…

【MySQL】《狂飙》电视剧火了,如果程序一直狂飙,扛不住了,怎么办呢?

程序如果狂飙了怎么办呢?《狂飙》电视剧你看了吗?程序“狂飙”,你担心吗?性能优化步骤适合创建索引的情况不适合创建索引的情况Explain 性能分析id说明select_type 说明type字段说明Extra说明一下《狂飙》电视剧你看了吗&#xff…

电容笔和触控笔的区别是什么?触控笔排行榜

电容笔和触控笔在导电材料、作用机理、用途等方面来看,都有着很大的不同。电容笔采用设计中等大小的笔头,而且采用更耐磨的材料。随着科技的进步,人们的生活质量也在不断提高,无论是在工作中,还是在学习中,…

【文档注释的写法 UIButton显示多个内容 插件介绍 Objective-C语言】

一、文档注释的写法, 1.例如,我在ViewController.m文件里,有一个方法,叫做sayHi, #import “ViewController.h” @interface ViewController () - (void)sayHi; @end @implementation ViewController - (void)sayHi{NSLog(@“Hi,大家好!”); } 然后,在上面调这…

小程序项目学习--第六章:项目实战二、推荐歌曲-歌单展示-巅峰榜-歌单详情-页面优化

第六章:推荐歌曲-歌单展示-巅峰榜-歌单详情-页面优化 01_(掌握)音乐页面-推荐歌曲的数据获取和展示 推荐歌曲的数据获取的实现步骤 0.封装对应请求接口方法 export function getPlaylistDetail(id) {return hyRequest.get({url: "/playlist/detail",d…