上QQ阅读APP看书,第一时间看更新
积极采用有帮助的可变性
计划驱动开发过程把产品开发当作制造业,它们避免任何变数,鼓励遵从规程。但问题是,产品开发和制造业完全不同。在制造业中,我们的目标是遵循大家都理解的一套顺序步骤,根据一套固定的需求,每次都(在明确制定的偏差范围内)生产出同样的产品(参见图3.3)。
图3.3 规程
然而,在软件产品开发行业,我们的目标不是制造产品,而是创建产品的单个实例。单个实例类似于独一无二的配方。我们不希望同样的配方得搞两次,太浪费钱了。相反,我们要为新产品创建独特的配方。每次在生产不同产品的时候,都必然存在一些变数。实际上,在产品中构建的每个特性都不同于该产品的其他特性,所以即使在产品层面也存在可变性。先有配方,我们才能制造产品,这对于软件产品来说,就像复制字节一样简单。
话虽如此,但制造业中的有些思想对软件开发还是挺适用的,软件开发能够并且应该利用这些思想。例如我稍后就会讲到一点:识别和管理WIP不仅对制造业非常重要,对软件开发也如此。然而就工作的本质而言,软件开发和产品制造完全不一样,所以需要完全不同的过程。