未雨绸缪这章我开始一直记成了是讲风险,但是仔细阅读后发现主要讲如何快速适应变化。在敏捷软件开放中我们强调通过迭代和快速交互等各种方法来适应变化。在大型软件工程中我们看到仍然需要考虑如何适应变化,很多时候对于大型的软件和系统,我们一开始往往很难设计的很清楚,所以只有先假设一种方案,然后对其开发原型进行验证,只有通过验证后才能开始后续的计划,否则就必须提出新的假设。
一切事物皆无常,都处于动态的发展变化中,唯一不变的就是变化本身。不但目标上的变化不可避免,而且设计策略和技术上的变化也不可避免。抛弃原型概念本身就是对事实的接受——随着学习的过程更改设计。所以以此为展开分别开始谈软件开发生命周期的各个阶段都必须要适应变化。
- 为变更而计划并不是要求我们范围不明确,而是计划过程应该是迭代式的渐进细化过程。
- 为变更而设计组织结构,如外科手术团队,要求最小化团队成员接口并最方便系统修改和扩展。
- 为变更而发布讲如何提高软件产品可维护性,如何解决Bug的修复会引入新的Bug的问题。