大道至简第五章读后感

作者在第一节开门见山地提到做过程不是做工程。软件工程成熟的标志是瀑布模型的提出,它将软件开发的过程分成需求、分析、设计、开发和测试等五个主要阶段在此之后很多人开始研究过程模型的问题,并从实际工程中提炼出了很多值得称道的模型,例如RAD模型、螺旋模型、RUP模型,这些模型给出了各种各样的开发过程。然而,按照他们所给的过程一步一步的做出来,并不等于做工程,只是这样的话并不能做成工程,否则我们就不需要那么多模型了。因此做过程并不是做工程的精义,也不是目的。

在做项目的时候,把每一个环节像唱戏一样走一遍,把每一个环节当成一个“过场”,这样项目就沦为了一场无休止的演出。

然而,实现,才是目的。从最开始编程我们就是为了实现一个目的,小到一个趁手的工具,大到千万的工程,我们的目标都是要实现它。工程只是一种实现的途径,现在却被当成了一种借口,把工程的每个环节都做了,却忘了项目要求什么,客户的需求是什么。只满足于做完一个工程,却忽略了如何将一个项目做好,没有完成项目的实现目标。

那些为工程而工程的人都迷失在项目中了,就像开发人员迷失在一个技术的细节上一样。他们精心投入在每一个流程中,什么时候应该干什么都清清楚楚,他们或许没有意识到,正是这些流程把他们绑得死死的,在无精力去钻研功能的“实现”。

然而过程不应是死的模型,试着跳出大师的身影,再仔细看一下那些所谓的“经典”过程,不过是瀑布模型上的一再变形。瀑布模型描述了开发的主要环节,其他模型不过是这些环节加以变形、组合的产物。

V模型中同样跳不脱瀑布模型的影子,它只不过是在相应背景下催生出的一种产物,因而在那个背景下显得颇为实用。我们的关注点应当在与V模型为何产生,而不是手舞足蹈的庆祝又有一个模型可以用来加以“借鉴”了。

它的产生是由于实际的需要,在需求的面前瀑布模型可以变成其他任何一种模型,过程模型是在既有工程中总结出来的,在他有名字之前就已经存在了,所以我们应当面对需求去开创相应的方法,现有模型应当是被用来借鉴的,而不是照搬,任何模型都无法完美的适用于现有的工程中,否则它就不是模型了。

以得失而论,在瀑布模型与RUP模型之间,学习前者不成可思过程的本质;学习后者而不成,可得文字的架子,过程理论中,如果懂得了所谓的模型都是演化自那个简单的瀑布,那么文档是按什么写,都可以,应时,应需,因地制宜,择善而从了。本质的东西若能理解的透,架子还不是随手搬来就能用的吗?越是简单的东西就越是接近于本质。

工程不是做的,是组织的,只有工程中的各个角色分工明确,步调一致,才能共同的完成,这也正是项目经理应当做的。

 

posted on 2015-10-29 10:11  卫平公  阅读(147)  评论(0编辑  收藏  举报