模型只是工具,它不是一面镜子
The model is a tool, not a mirror.
软件开发领域有很多模型,像RUP、CMMI/GJB5000A等等,这些模型的出现一度改变了环境开发混乱的现状,开发过程变得有序,软件质量得到提高,但是不要把模型看作是解决软件开发过程中所有问题的灵丹妙药,模型只是工具,它只能起到辅助的作用。
过分的依赖模型,可能会带来新的问题。
比如:
-
混淆模型与现实
模型不是现实,它只是对现实中的一些事物的运行规律进行了提炼。所以我们不能天真地认为只要按照模型的要求去做,软件开发就会一帆风顺。现实当中总会出现各种无法预料的状况,它们会打乱我们的计划,让我们认清现实。
-
低估不能形式化的特性
模型能够给出处理问题的一些原则和要求,但它不可能告诉你一个具体的问题应该怎么解决。比如说,我们可以通过头脑风暴会议的方法来寻求问题的解决方案,但是模型无法给出这个头脑风暴会议究竟应该持续多长时间。
-
规定违背个人自主性的行为
模型会给软件开发设定各种条条框框,这些条条框框可以减少开发人员犯错的几率,但是这些条条框框同时也限制了开发人员的创造力。
-
偏袒新手,疏远经验丰富的员工
对于新手来说,模型是友好的。因为新手需要一个指令清单来开展工作。但是对于那些经验丰富的员工,这些模型更多的就是一种限制和约束。
-
把复杂局势过于简单化
与现实的复杂局势比较起来,模型过于简单化了。不要以为实现了模型所要求的那些实践,就能够达到模型所期望的目标。
-
追求过度一致
模型要求所有的项目都遵从相同或相似的规定,然而事实上没有任何两个项目会是完全相同的,模型也不可能放之四海而皆准,上一个项目里有用的东西对当前的项目来说可能就是一场灾难。
-
忽视情境的细微差别
同样的规定在不同的项目中可能带来完全相反的结果,这是因为不同的项目的情境是不同的。可是如何发现这些项目情境的细微差别,针对这些细微差别要采取哪些补救措施,模型并没有告诉我们。
-
故弄玄虚
如果模型的语言表达过于口号化,缺乏可操作性,那它对我们的帮助就会变得非常有限。
总之,模型只是我们完善软件开发过程的工具,没必要将它神化。
这正是:
模型不过是工具,辅助开发有余地
莫把模型给神化,不忘初心是质量
参考书目:程序员的思维修炼:开发认知潜能的九堂课,作者:(美)亨特(Hunt),译者:崔康,出版社:人民邮电出版社
作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。
《模型只是工具,它不是一面镜子》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/3206.html