快速原型方法存在的主要问题是:文档容易被忽略,建立原型过程中的许多工作会被浪费,项目难以计划和管理。但是这种方法的好处更大:能够适应不明确的需求,比传统的瀑布式方法要快得多,用户的介入更多,能够及早发现问题从而降低风险。 在软件开发过程中,面对快速变化的市场需求和新技术发展,最大的风险往往来自对需求的分析和技术实现手段的选择,通过原型化方法,首先以合理的成本细化需求、试验技术手段,把最主要的风险降到最低,从而在总体上降低软件开发的风险,加快软件产品的形成,降低软件开发的成本。
快速原型方法的过程,特别是进化的原型方法,与软件的版本升级有些类似。随着市场需求的变化,软件版本不断升级,每升级一次,就会增加新的功能,或者引入符合发展新趋势的技术手段。但是每一个版本都是产品化的,在产品质量方面都达到了相当的要求,这与软件原型是不同的,快速原型是一个由粗到细的过程,在最终形成产品之前,不论原型被修改了多少个版本,都还不能达到产品化的要求,不能对外发布。
使用快速原型方法的最大困难就是工程管理的问题,许多具有较强管理能力的企业对快速原型方法也感到畏惧,根本原因就是其不确定性所带来的风险。但是应该知道,快速原型的方法,正是为了针对主要风险,分解风险,尽早地、低成本地降低风险。否则,如果一味地强调软件开发必须以明确的需求为前提,采用传统的瀑布式开发方法,则会面临更大的市场风险,如果以不明确的需求采用传统的开发方法,软件开发本身也必然面临着灾难性的风险。因此,快速原型方法应该成为我们软件开发过程中降低风险的一种有效的方法。
许多企业在新的软件开发需求提出时,实际已经建立了自己的信息系统的基础架构,也已经开发了类似的软件系统,因此在新产品开发中应采用的技术手段方面,已经不存在问题,这时的风险主要存在于不明确的需求上,此时采用进化的原型方法,比丢弃的原型方法会更有效。为了加强对原型化方法的开发过程的管理,可以在整个原型化过程中把每一次对需求的细化看作是一次版本升级,在每一次升级过程中,细化了的需求是明确的(虽然还不一定是最终的),这就可以采用瀑布式开发管理方法,只是这一过程的周期会非常短,而且只要不是最终版本,成本就必须控制在最低。从另一个角度来说,如果企业的规划能力比较强,对整个产品发展、信息系统建设都有比较明确的思路,这对于降低单个软件产品的风险非常有利,限制了产品的风险,为单个软件产品的设计开发,提供了很好的基础。因此,使用快速原型方法,需要充分考虑到与企业原有的规划和基础设施的关系,并注意对它们的影响。下图是一种典型的快速原型方法的工作流程。