1.外科手术式的架构:
2.大型的软件开发中,概念一致性必须得到良好的体现,这不是体现民主的时候,否则更多的精力浪费在无用的讨论中,系统架构师应该是这样一个角色,他并不直接参与编码,但要完成架构设计和协调接口。而程序员的聪明才智应该用在具体模块的实现上。
3.评判一个软件的需要综合考量两个方面,软件的易用性和软件的功能多样性。
4.整个创造性活动分为三个阶段:体系结构设计,设计实现,物理实现。
5. 1/3计划
1/6编码
1/4构件测试
1/4系统测试
典型的瀑布模型
6.规格说明文档是整个概念一致性的体现。
7.对于一个广泛使用的程序,其维护总成本通常是开发成本的40%或更多。令人吃惊的是,该成本受用户数目的严重影响。用户越多,所发现的错误也越多。
代码的维护过程中往往很有机会带入新的BUG,修复原有BUG会有新的产生,增加新的功能也会产生新的BUG。(这就是前进二步,后退一步),随着用户需求变化,设备的硬件变化,最终软件维护成为前进一步,后退一步。系统软件开发是减少混乱度(减少熵)的过程,所以它本身是处于亚稳态的。软件维护是提高混乱度(增加熵)的过程,即使是最熟练的软件维护工作,也只是放缓了系统退化到非稳态的进程。
8.在软件开发中,工具变得非常重要,工欲善其事,必先利其器。程序员团队中,大家最好使用相同的工具。