模型只是工具,它不是一面镜子

The model is a tool, not a mirror.

软件开发领域有很多模型,像RUP、CMMI/GJB5000A等等,这些模型的出现一度改变了环境开发混乱的现状,开发过程变得有序,软件质量得到提高,但是不要把模型看作是解决软件开发过程中所有问题的灵丹妙药,模型只是工具,它只能起到辅助的作用。

过分的依赖模型,可能会带来新的问题。

比如:

  • 混淆模型与现实

模型不是现实,它只是对现实中的一些事物的运行规律进行了提炼。所以我们不能天真地认为只要按照模型的要求去做,软件开发就会一帆风顺。现实当中总会出现各种无法预料的状况,它们会打乱我们的计划,让我们认清现实。

  • 低估不能形式化的特性

模型能够给出处理问题的一些原则和要求,但它不可能告诉你一个具体的问题应该怎么解决。比如说,我们可以通过头脑风暴会议的方法来寻求问题的解决方案,但是模型无法给出这个头脑风暴会议究竟应该持续多长时间。

  • 规定违背个人自主性的行为

模型会给软件开发设定各种条条框框,这些条条框框可以减少开发人员犯错的几率,但是这些条条框框同时也限制了开发人员的创造力。

  • 偏袒新手,疏远经验丰富的员工

对于新手来说,模型是友好的。因为新手需要一个指令清单来开展工作。但是对于那些经验丰富的员工,这些模型更多的就是一种限制和约束。

  • 把复杂局势过于简单化

与现实的复杂局势比较起来,模型过于简单化了。不要以为实现了模型所要求的那些实践,就能够达到模型所期望的目标。

  • 追求过度一致

模型要求所有的项目都遵从相同或相似的规定,然而事实上没有任何两个项目会是完全相同的,模型也不可能放之四海而皆准,上一个项目里有用的东西对当前的项目来说可能就是一场灾难。

  • 忽视情境的细微差别

同样的规定在不同的项目中可能带来完全相反的结果,这是因为不同的项目的情境是不同的。可是如何发现这些项目情境的细微差别,针对这些细微差别要采取哪些补救措施,模型并没有告诉我们。

  • 故弄玄虚

如果模型的语言表达过于口号化,缺乏可操作性,那它对我们的帮助就会变得非常有限。

总之,模型只是我们完善软件开发过程的工具,没必要将它神化。

这正是:

模型不过是工具,辅助开发有余地

莫把模型给神化,不忘初心是质量

参考书目:程序员的思维修炼:开发认知潜能的九堂课,作者:(美)亨特(Hunt),译者:崔康,出版社:人民邮电出版社

作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。

模型只是工具,它不是一面镜子》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/3206.html