《人月神话》--读书笔记 (3)

      9.8  精炼、充分和快速的程序往往是战略性突破的结果,而不仅仅是技巧上的提高。战略上的突破常来自于对数据或者表的重新表达。数据的表现形式是编程的根本。

提纲挈领

      10.1  对于软件项目,目标、用户手册、内部文档、进度、预算、组织结构图和工作空间分配是关键文档。

      10.2  即使是小型项目,项目经理也应该在项目早期对上述一系列文档进行规范化。

      10.3  每个文档本身就可以作为检查列表或者数据库。

      10.4  项目经理的主要日常工作是沟通,而不是做出决定,文档使各项计划和决策在整个团队范围内得到交流。

未雨绸缪

       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  在编制程序的项目中,节省最大工作量的工具可能是文本编辑系统。

整体部分

        13.1 许多失败完全源于哪些产品未经确定以的地方。

        13.2  在编码前,规格说明必须提高给外部测试小组,以详细检查说明的完整性和明确性。

        13.3  好的自上而下的设计从四个方面避免了bug

        13.4  有时必须回退,推翻顶层设计,重新开始。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgdff.html