九、适当控制:削足适履Ten Pounds in a Five-Pound Sack
·规模本身不是坏事,但不必要的规模是不可取的
·应该制定总体规模预算,且时刻清醒
·在指明模块有多大的同时,确切定义模块的功能
·架构师必须保持警觉,确保连贯的系统完整性
·数据的表现形式是编程的根本
十、文档资料:提纲挈领The Documentary Hypothesis
·关键文档:目标、技术说明、进度表、预算、组织结构图、工作空间的分配
·报价、预测、价格,这三个因素互相牵制,决定了项目的成败
·软件项目的文档:目标、内容(产品技术说明)、时间(进度)、资金预算、地点(工作空间分配)、人员(组织图)
·正式的文档一是确定正确的信息、二是作为沟通渠道
十一、未雨绸缪Plan to Thorow One Away
·一旦意识到自己的系统出现了非常大的问题,无论再艰难,也必须舍弃
·唯一不变的就是变化本身
·程序维护的一个基本问题:缺陷修复总是以固定(20%-50%)的几率引入新的bug
·更新时总是前进两步、后退一步;更少的设计人员、更少的接口才能产生更少的错误
·熵的增加是自发过程(这一点应该不用解释了吧),而自发过程就是趋向于稳定的过程:系统软件开发是减少混乱度(减少熵)的过程,所以它本身处于亚稳态;软件维护是提高混乱度(增加熵)的过程,只是放缓了系统退化到非稳态的过程。
十二、改善工具:干将莫邪Sharp Tools
·项目经理必须考虑的工具:计算机设施(硬件&安排策略)、操作系统、语言(定义清晰的语言使用方针)、使用程序、调试辅助程序、测试用例生成工具和处理文档的字处理系统。
·目标机器:软件所服务的对象,程序必须在该机器上进行最后测试
·方针装置:提供可靠的调试平台
·编译器和汇编软件
·程序库与管理:必须受控;且开发库与集成、发布可正式分离
·交互式编程:多个级别上数据和程序的共享和保护,可延伸的库管理,用于终端用户之间协作的设施(生产率至少是之前的2倍)
十三、整体与部分The Whole and the Parts
·剔除bug的设计:开始编程前一定要详细检查测试规格说明的完整性和明确性
·自上而下设计、结构化编程
·构件单元调试:本机调试、内存转储、快照、交互式调试、测试用例
·系统集成调试:使用经过调试的构件单元、搭建测试平台(可以使用伪构件,或微缩文件)、控制变更(控制各个构件单元的变更或版本之间的替换)、一次添加一个构件(拒绝一次添加多个的诱惑!)、阶段(量子)化、定期变更
以上内容为《人月神话》(作者:[美]小弗雷德里克·布鲁克斯)的第9-13章读书笔记及部分摘要,本人加入一定量自己的理解;因水平有限,欢迎大家交流指正,谢谢~
另:《人月神话》是比较偏技术侧的书籍,翻译过来有点佶屈聱牙,我这里更多只是列了提纲,希望大家有机会还是自己去看、可以有更多收获~
网友评论