瀑布模型为设计项目的规划提供了清晰的步骤,为日程规划和进度评估定义了明确的阶段里程碑。它为项目组合人员配备指明了方向。它改进了设计团队的内部沟通。新手很容易就可以上手。
设计师只把理性模型视为一种理想化的东西。
我们在初始阶段并不真正地知道目标是什么,设计中最困难的部分在于决定要设计什么
下面分享Frederick P. Brooks一个小故事,加以说明:
当我还是个学生时,有一个暑假去替一家很大的军火商打工,在那里我被指定去设计和构建一个小型数据库系统的工作,用以跟踪某个雷达子系统的上万张图纸以及其中每一张图纸的更新状态。
过了几个星期,我做出来了一个可以运行起来的版本。我自豪地向我的客户演示了一个输出报告的样例。 “做的不错,这的确是我想要的,不过你可否把这里改一下?那样我们就可以。。。”
接下来的数个星期,每天早上我都给客户演示输出报告,每次都是顺应了前一天提出的要求之后的修改结果。每天早上,他都会对产品报告研习一番,然后一成不变的、彬彬有礼的口头禅提出另一项系统修订的要求。系统本身很简单,有那么一阵子,我很是愤愤不平:“为什么他不可以就想要的内容下定决心?为什么他不能把想要的对我一口气说完,而偏偏要每天挤一点出来呢?”
然后,我一点点地认识到,我为客户提供的最有用的服务,乃是帮助他决定什么是他真正想要的。
如今的软件工程原则要复杂的多了。我们认识到,快速原型是一种进行精准的需求配置的必要工具。不仅整个设计过程是迭代的,就连设计目标的设定过程本身也是迭代的。
在初期就能了解整个产品需求属于相当罕见的例外,而远非常态。
设计师的主要任务乃是帮助客户发现他们想要的设计。
越来越多的设计师们为计算机构建模拟器,为建筑构建虚拟环境演练,作为快速原型,以促成目标的收敛。目标的迭代必须作为设计过程的固有组成部分加以考虑。