软件工程这个概念被提出的时候大概是在上个世纪60年代末。它作为成熟的概念标志是软件工程的瀑布模型的提出。瀑布模型将软件开发的过程分为需求、分析、设计、开发和测试等5个主要阶段。
在瀑布模型之后,很多人开始研究过程模型的问题。很多从实际工程中提炼出来的过程模型都是值得称道的,例如RAD模型、螺旋模型和现在常被提及的RUP模型。
接下来我们要做过场,为什么会存在这样的问题呢?四川有句老话叫做过场,也有说成走过场的。过场是舞台术语。意思是角色从舞台一端出场,在走到另一段进场的过程。过长角色一般没有唱腔或道白,即使是有,也是没有什么实质内容的。
实现才是目的。很多人把问题的本质给忘了。从最开始,我们变成开始,我们的目的就是实现一个东西。无论这个东西是小刀一个称手的工具,还是一个大到千万的程序。
工程只是一种实现的途径。最初做开发的前辈们,不用什么工程或者过程,也一样编出了程序,也一样解决了问题,也一样实现了目的。而现如今,我们讲工程了,讲过程了,讲方法了,却什么也做不出来了。不奇怪么?工程被当作了借口,掩盖了我们做事的真正目的实现。因此,我们在一个项目中常常听到说工程要这样做,或者工程要那样做,而绝少听到项目要求这样做或者客户的本意是这样的。这样的结果就是我们做完了工程的每一个过程,却没有完成项目。