分享

我对“过程三问”的解答

 东北十三少 2020-10-16

第一个问题:Why do we think processes are so important? 你为什么认为软件过程重要?

中国有句古语,“不以规矩,不能成方圆”(出自《孟子》)。它强调做任何事都应该遵循一定的规范,否则难以成事。软件开发何能例外。

软件过程就是软件开发应当遵循的一系列规范,而这些规范实际上来自于前人经验教训的总结。如果你不遵守这些规范,就会走前人已经走过的弯路,就会流前人已经流过的汗,甚至是血。

第二个问题:Are all processes created equal? 所有软件过程都一样重要吗?

软件过程的重要性,是对软件项目追求的目标而言的。对于不同的目标,不同的软件过程的重要性是不一样的。比如很多互联网公司的软件项目追求的是尽快地将一个新的创意上线抢先占领市场,它追求的主要目标是快速上市,只要抢先占领市场,存在一些不影响主要功能的Bug都是可以接受的。那么,它对验证和确认过程的要求会降低;但是,如果是一个军用软件项目,它追求的主要目标是软件安全、可靠,它对验证和确认过程要求会很高。

即使是对于相同类型、项目目标也类似的项目来说,CMMI/GJB5000A中的20多个过程域的重要性也不同一样的。像决策分析与决定过程域,它只对重大事项的决策有意义,可以重大事项可能对很多项目来说,整个项目生命周期也不会遇到一次。

我们在推进GJB5000A的时候,遇到的阻力之一是开发人员感受不到实施GJB5000A给他们带来什么帮助,感受不到给软件质量带来什么改善。造成这个后果的原因之一是我们推进GJB5000A时,把有限的资源平均分配到各个过程上了,结果整体效果不显。这也从另外一个角度说明了软件过程的重要性不是一样的。

新时代认证中心软件认证部李志部长总结推进GJB5000A经验时,有一句话叫“解决问题出成效”,就是希望实施GJB5000A时可以重点抓几个过程,解决组织迫切需要解决的问题。

第三个问题:How repeatable, consistent and persistent should processes be? 你觉得一致、可重复、坚持不懈的软件过程应该是什么样的?

一个组织要有这样的软件过程,首先它一定是本地化的、适合组织的、独特的。软件过程虽然有它的规律可循,但到了具体实施的细节层面,它一定是独特的,它不可能是千篇一律的。没有做好本地化,不适合组织实际,它就不可能被重复使用。

其次,这样的软件过程一定是一个不断优化的过程。随着组织环境的变化、随着新技术、新工具的涌现,软件过程必然要随之优化和改进,否则,它也难以持续下去。


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

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章