《大道至简》这一章讲的是失败的过程也是过程,而首先明确了一下做过程不是做工程。软件工程这个概念作为成熟的概念的标志是软件工程的瀑布模型的提出。瀑布模型将软件开发的过程分为需求,分析,设计,开发和测试等五个阶段,其主要环节关系为定义,实现和维护。模型就是“样子”,而做完过程的每一个阶段,并不等于工程。所以光有模型做出来的只是过程,也不是工程。
如演戏一样,每一个角色都会把自己的环节当成一个“过场”,要是做项目是也是当“过场”一样,一遍一遍做下去,那么这个项目最终将是一场无休止的演出而已。
现在每一个人都在讲工程,讲过程,好像没有工程,没有过程,这个项目就没有办法实现了一样。可是最初的前辈在做开发时,没有工程也没有过程,照样也编出了程序。现在我们总是再拿工程当借口却忘了工程不过是一种实现的方式而已,所以为工程而工程的人,都迷失在项目中了。就像开发人员迷失在一个技术的细节上一样。不要把工程看得太重,最主要的是如何去实现这个工程。
在实现一些程序上,我们总会用一些模型来实现我们的程序。可是在大师研究了瀑布模型了之后又出现了V模型,在用的过程中我们要是把V模型当成了折弯的瀑布模型,那便是犯了与买椟还珠同样的错误。V模型在每一个环节中都强调了测试,同时又在每一个环节都对实现者和测试者的分离。然而相对于瀑布模型,V模型又有什么改变呢,它只是把测试阶段抽取出来了而已,你要知道,过程模型是在既有工程中总结出来的,也就是说,在摸个模型有了名字之前它就已经存在了,就已经被一些团队或者公司创生并使用了。所以,在写程序时我们为什么一定要用死模型呢,如果需要我们也可以创造出新的工程方法。
在学东西时要注重骨子里的东西,而不是只学习外在的架子。就像在瀑布模型与RUP模型之间,学习前者而不成,可思过程的本质;学习后者而不成,可的文字的架子。只要理解了本质内容,在写程序时也就可以应时,应需,因地制宜,择善而从之了。所以越是简单的东西,往往越是接近与本质。
我们总是在说“做工程”,就好像工程是做出来的。其实,经历过工程的人都知道,我们不能“作”工程,而是要“组织”工程。项目经理的工作,就是要去组织这个工程中的各个角色,使得分工明确,步调一致,共同的完成这个项目。有了这些我们才能更好地完成工程,使得项目更好的实现。