人月神话读书笔记(11)----未雨绸缪
来源:互联网 发布:ai软件视频教程 编辑:程序博客网 时间:2024/05/17 23:18
未雨绸缪
图为纽约湾的Tacoma桥由于空气动力学上的错误设计而坍塌的新闻照片。1940年11月7日中午时分,建成仅仅数月的Tacoma桥坍塌,这是桥梁工程史上著名的悲剧。在做项目设计和规划时,一定要考虑到各种不确定的变化因素,灵活适应多变的环境,否则很可能酿成悲剧后果。
不变只是愿望,变化才是永恒。
试验性工厂和增大规模
- 对于大多数项目,第一个开发的系统并不合用。它可能太慢、太大,而且难以使用,或者三者兼而有之;
- 系统的丢弃和重新设计可以一步完成,也可以一块块地实现。所有大型系统的经验都显示,这是必须完成的步骤;
- 为舍弃而计划,无论如何,你一定要这样做;
唯一不变的就是变化本身
- 变化是与生俱来的,不是不合时宜和令人生厌的异常情况;
- 开发人员交付的是用户满意程度,而不仅仅是有形的产品;
- 用户的实际需要和用户感觉会随着程序的构建、测试和使用而变化;
- 软件产品易于掌握的特性和不可见性,导致它的构建人员面临永恒的需求变更;
- 目标上的一些变化无可避免,事先为它们做准备总比假设它们不会出现要好得多;
为变更设计系统
- 最重要的措施是使用高级语言和自文档技术,以减少变更引起的错误;
- 变更的阶段化是一种必要的技术。每个产品应该有数字版本号,每个版本都应该有自己的日程表和冻结日期,在此之后的变更属于下一个版本的范畴;
为变更计划组织架构
- 现在软件编程小组失败的主要原因是管理控制的太少,而不是太多;
- 不愿意为设计书写文档的原因,不仅仅是由于惰性或时间压力。相反,设计人员通常不愿意提交尝试性的设计决策,再为它们进行辩解;
- 为变更组建团队比为变更进行设计更加困难;
- 只要管理人员和技术人才的天赋允许,老板必须对他们的能力培养给予极大的关注,使管理人员和技术人才具有互换性;
- 项目目标、进展和管理问题必须在高级人员整体中得到共享;
前进两步,后退一步
- 在程序发布给顾客使用之后,并不会停止变化。发布后的变更被称为“程序维护”;
- 软件维护主要包含对设计缺陷的修复,通常包含了更多的新增功能,它通常是用户能察觉的;
- 对于一个广泛使用的程序,其维护总成本通常是开发成本的40%或更多;
- 缺陷修复总会以固定(20%—50%)的几率引入新的BUG。所以,整个过程是前进两步,后退一步;
- 每次修复之后,必须重新运行先前所有的测试用例;
- 使用能消除或至少能指明副作用的程序设计方法,会在维护成本上有很大的回报;
- 设计实现的人员越少、接口越少,产生的错误也就越少;
前进一步,后退一步
- 模块总数量随版本号的增加呈线性增长,但是受到影响的模块数量随版本号的增加呈指数增长;
- 系统软件开发是减少混乱度的过程,所以它本身是处于亚稳态的。软件维护是提高混乱度的过程;
0 0
- 人月神话读书笔记(11)----未雨绸缪
- 《人月神话》笔记:未雨绸缪
- 人月神话读书笔记(2)-人月神话
- 人月神话读书笔记(2)----人月神话
- 读书笔记-人月神话 11
- 人月神话之七 未雨绸缪
- 人月神话读书笔记(四)
- 人月神话读书笔记(五)
- 《人月神话》 读书笔记(一)
- 《人月神话》 读书笔记(二)
- 《人月神话》读书笔记(十二)——未雨绸缪,为变更而计划,程序维护的哲学
- 人月神话-未雨绸缪和干将莫邪
- 人月神话读书笔记之二人月神话
- 人月神话读书笔记(1)-焦油坑
- 人月神话读书笔记(1)----焦油坑
- 人月神话读书笔记(3)----外科手术队伍
- 人月神话读书笔记(5)----画蛇添足
- 人月神话读书笔记(6)----贯彻执行
- Android Studio 安装程序Error type 3 :class do not exits
- Java--第10章--网络(学习小笔记)
- Foundation构架秘籍
- 全局变量和局部变量在内存中的区别
- BW 代码优化
- 人月神话读书笔记(11)----未雨绸缪
- Android Studio中代码混淆
- eayui结合Spring Boot实现客户端分页
- NYOJ 514 1的个数
- sql------总计
- Linux-(C/C++)动态内存分配malloc以及相关学习
- RXJAVA初接触
- Linux控制界面文字显示位置
- PHP中绘制图像的一些函数总结