大道至简第五章
第五章 失败的过程也是过程
第一节:做过程不是做工程
上个世纪60年代末提出了软件工程的概念,其成熟的标志是软件工程的瀑布模型的提出。瀑布模型将软件开发的过程分成需求、分析、设计、开发和测试等5个主要阶段。
模型就是“样子”。按照模型的这个“样子”,做完过程的每个阶段,并不等于做工程,或者说,工程并不是这样就可以做成功的。换而言之,无论是用RAD模型还是RUP模型来做工程,即使是亦步亦趋,也做不好工程。做过程并不是做工程的精义,也不是目的。
第二节:做过场
“过场”是舞台术语,意思是角色从舞台一端出场,再走到另一端进场的一个过程。过场角色一般没有唱腔或道白,即使是有,也是没有什么实质内容的。
按照RUP的思想,要从A做到Z一遍又一遍的做下去的,但是如果每一遍都只是“过场”的话,项目将是一场无休止的演出而已。
第三节:实现才是目的
从我们编程开始,我们的目的就是实现一个东西。无论这个东西是小到一个称手的工具,还是一个大到千万的工程,我们的目标,都是要“实现”它。
工程只是一种实现的途径。为了工程而工程的人,都迷失在项目中了。就像开发人员迷失在一个技术的细节上一样,专注于RUP或者RAD之间区别的人,可以把每一个过程的流程图都画出来,却也被每一个流程给捆绑的死死的。
第四节:过程不是死模型
V模型在每一个环节中都强调了测试(并提供了测试的依据)同时又在每一个环节都对实现者和测试者的分离。由于测试者相对于实现者是一种监督、考察和评审的关系,因此它相当于在不断地做回顾和确认。相对于瀑布模型V模型将测试(和评审)阶段抽取出来。
第五节:“刻鹄类鹜”与“画虎类狗”
以得失而论,在瀑布模型与RUP模型之间,学习前者而不成,可思过程的本质;学习后者而不成,可以得文字的架子。
过程理论在,如果懂得了所谓的模型原本都演化自瀑布模型,那么文档是按XP写还是按RUP写,也可以应时、应需,因地制宜,择善而从。
越是简单的东西,往往越是接近于本质。
RUP中,真正精髓的东西,既不是那个R(Rational);也不是那个U(Unified)而是P(Process),
第六节:工程不是做的,是组织的
我们不能“做”工程,而是要“组织”工程。项目经理的工作,就是要去组织这个工程的各个角色,使得分工明确,步调一致,共同的完成这个项目。
个人感想:
做过程并不是做工程,我们编程的目的一直都是去实现某个东西,并且做工程时的过程并不单单是一成不变的死模型,也是需要变通的;我们在利用模型的时候要懂得因地制宜,择善而从,适合的才是最好的。虽说是“做工程”但是工程不是“做”出来的,而是“组织”出来的。