产品开发是复杂的。因为产品开发人员必须完成成千上万项工作,而这些工作大部分是与他人工作紧密相关的,因此协调便成为极其复杂的工作。
为了能管理好这些庞大而复杂的工作,产品开发流程必须结构化且被清楚地定义。
所谓结构化,是指相互关联的工作要有一个框架结构,并要有一定的组织原则来支持它。比如,在一个自上而下的层次构架中,上层结构简单一些,越到下层越复杂越具体。所谓定义,是指每项工作都应明确规定。所有与产品开发有关的人都应该清楚他们所参与的是什么工作,应用什么方法去完成。
以上这些尽管看起来简单,但令人惊讶的是许多公司并不能真正做到。
在某些公司中,产品开发流程仍然是非结构化的,大部分工作也未清楚地加以定义。几乎没有一致的术语,每个项目组都单独地定义自己的工作,尽管他们的许多定义与其他项目小组相类似。结果,各小组的项目进度表不能互相比较,因为有的小组定义了20项任务,有的小组却定义了1000项任务。这样就无法一致地衡量其进度,也不能用标准的周期时间估算方法来制定进度表。这对那些支持多个项目的人来说就更困难了。没有一个共用的构架,产品开发流程便很难得到改进。
有些公司的做法完全相反。他们详细地定义了产品开发流程,定义得过于详细了。为了控制每一细节,他们把每项工作应如何完成以及工作完成后应该是什么样子都一一设定好。这种方法最典型的特点是,以文档资料为基础,对每项任务都需要准备一套详细编制的文档资料,并申请批准。每项任务的完成情况都受该文档的准备情况和批准情况的控制。这种官僚的管理方法经常是发布厚厚一本的规章制度,并带有详细检验标准,规定这些项目应如何完成。幸运的是,多数情况下人们并没有真的这么做。而按照他们这种做法,开发一个产品就要多花一倍的时间。
许多公司由于匆匆定义产品开发流程而忽略了对结构的需要。而对有些公司来讲,定义的结构本身也并不合理。不是层次定义得不对,就是任务放错了位置:通常体现为在太短的时间内需要太多的信息。
在IPD中,结构化产品开发在服从和创造力之间达成一种平衡。一个深思熟虑的流程并不会阻碍创造力的发挥,它允许开发组把精力集中到开发产品这个实际问题上,并不需要每次重新建立开发流程。