大道至简第五章读后感
我们做程序都是需要按照要求所编写的,客户的要求就是我们最终所要做的,做过程并不是做工程,一个客户给出一个需求模型,经过项目经理和分析员,最终到达程序员手里,此时的模型早已变样,按照模型的样子,做完每一个阶段,并不等于做工程,或者说,工程并不是这样就可以做成功的。瀑布模型将软件开发的过称分成需求、分析、设计、开发和测试等5个主要阶段。按照模型的这个样子,做完工程的每一个阶段,并不等于做工程。或者说,工程并不是这样就可以成功过的。因此做过程并不是做工程的精义,也不是目的。
做工程并不是走过场,如果每一次流程都是走过场的话,那么项目将是一场无休止的演出。最后的结果就是,人走茶凉。很多人把问题的的本质给忘掉了,我们从编程开始,我们的目的就是实现一个东西,工程只是一种实现的途径,真正有意义的是实现我们最终的目的,为工程而工程的人,都迷失在项目中。就像关于过程模型,过程模型是在既有工程中总结出来的,那么为什么我们不是创生那些新的工程方法和软件过程理论的团队或者公司呢。之后周爱民先生为说明模型创新举出了两个例子“刻鹄类鹜”与“画虎类狗”,在学习模型时,不应该以得失而论。在瀑布模型与RUP模型之间,学习前者而不成,可思过程的本质;学习后者而不成,可得文字的架子。正如作者所说“本质的东西若能理解得透,架子还不是随手搬来就可以用吗”。
越是简单的东西,往往越是接近本质。正如朱湘所说:“画不成老虎,真像狗;刻不成的鸿鹄,真像鹭吗?不然,不然。成功了便是虎同鹭,不成功时便是怪物。”所以选择骨子,不选择架子。我们总是在说“做工程”,好像工程就是面包馒头一样,有个模子,而我们没有那个模子,所以我们当然不能做工程,而是要组织工程,使得分工明确,步调一致,共同完成这个项目。