读书笔记4
做过程而不是做工程,软件工程这个概念大概是在上世纪60年代末提出来的,成熟的标志是软件工程的瀑布模型的提出,在瀑布模型之后,很多人开始研究过程模型的问题。模型就是“样子”。人家拿出一个东西来说:这是模型。其言下之意就是要你按照这个样子来做。按照模型的这个“样子”,做完过程的每一个阶段,并不等于做工程。或者说,工程并不是这样就可以做成功的。如果工程可以那样做成的话,只需要有瀑布模型就足 够了。因此做过程并不是做工程的精义。也不是目的。
实现,才是目的,很多人把问题的本质给忘掉了。从最初开始我们的目的就是都是要实现它,工程只是一种实现的途径,为工程而工程的人,都迷失在项目中了。就象开发人员迷失在一个技术的细节上一样。专注于 RUP 或者 RAD 之间的区别的人,可以把每一个过程的流程图都画出来,却也被这每一个流程给捆绑得死死的,再也没有挣扎一下的力气。
过程不是死模型,试着跳出大师们的身影,再仔细地看一下那些所谓的“经典”过程,不过是在瀑布模型上的一再变形。我们应该去思考由瀑布模型到 V 模型这种变化的真实意图。
过程理论中,如果懂得了所谓的模型原本都演化自那个简单的瀑布,那么文档是按 XP 写还是按 RUP 写,也就可以应时、应需,因地置宜,择善而从了。——本质的东西若能理解得透,架子还不是随手搬来就可以用的吗?越是简单的东西,往往越是接近于本质。
工程不是做的,是组织的,我们不能“做”工程,而是要“组织”工程。项目经理的工作,就是要去组织这个工程中的各个角色,使得分工明确,步调一致,共同地完成这个项目。