3.12阅读笔记5
未雨绸缪
11.1 第一个开发的系统对于大多数项目来说并不合用,它可能太慢、太大难以使用。
11.2 系统的丢弃和重新设计可以一步完成,也可以一起实现,但必须完成。
11.3 为舍弃而计划,无论如何,你一定要这么做。
11.4 开发人员交付的是用户满意程度,而不仅仅是实际的产品。
11.5 用户的实际需要和用户感觉会随着程序的构建、测试和使用而变化。
11.6 为变更计划软件产品的技术,特别是拥有最细致的模块接口文档的结构化编程广为人知。
11.7 为变更计划组织架构:为变更组建团队比为变更进行设计更加困难。
11.8 前进一步,后退两步:程序维护主要由各种变更组成,如修复设计缺陷,新增功能,或者使用环境或配置变换引起的调整。
11.9 对于一个广泛使用的程序,其维护成本通常是开发成本的40% 或更多。
11.10 缺陷修复总会以20%~30%的几率引入新的bug。
11.11 实现设计的人员越少,接口越少,产生的错误也就越少。
11.12 前进一步,后退一步:系统熵随时间增加,所有修改都倾向于破坏系统的架构,增加系统的混乱程度(熵)。
干将莫邪
12.1 项目经理应该制定一套策略,为通用工具的开发分配资源,同时,也必须意识到专业工具的需求。
12.2 需要安排一名系统程序员,保证机器上的标准软件是及时更新和实时可用的。
12.3 目标机器的使用需求量是一种特殊曲线:开始使用率非常低,突然出现爆发性增长,最后趋于平缓。
12.4 在编制程序的项目中,节省最大工作量的工具可能是文本编辑系统。