浅读人月神话(完)
admin
2024-05-22 16:37:00
0

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

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...