标准还是指南?
软件体系中出现频率最高的三个词是标准(standard),流程(procedure)和指南(guideline)。今天做个简单科普,帮助大家了解下何时使用标准和流程,何时使用指南。
先给根据三者的使用特点给它们下个定义:
标准:用来比较的规则或基础,如评估规模、内容、价值。标准可以由组织根据公共实践建立也可以由标准机构建立。(CMMI认证)
流程:明确定义的做事步骤。
指南:建议的实践、方法、流程,一般由权威机构发布。
软件标准一般有两类,一类是产出物的标准,如需求规格说明书,问题报告;另一类则是活动标准,如同行评审标准。标准和流程往往是密不可分、融合在一起的,如软件评审标准和评审流程通常会放在同一个文档中。评审标准明确评审内容,准备材料,参与人员及职责,输出报告和数据;评审流程则定义了评审步骤,谁来做,何时做,做什么等。(CMMI认证)
Humphrey清晰阐述了标准的价值:
当一个组织有多个产品、部门、工具时,标准变得格外重要。当所有人都掌握了完成同一件事的做法时,他们可以轻松的在不同项目中转换,也大大减少了培训成本,同时可以形成统一的任务监控模式。标准可以大大促进好的工具、方法在组织内部的一致落地,标准是大规模项目成功的重要原因之一。
可惜的是,在软件开发环境下,很多时候标准并不适用。因为大部分场景需要具体情况具体分析,做不到one size fits all。当人的判断不可缺时,标准就失效了。CMMI中的DAR都应该是无法使用标准的场景,这种情况下,指南就彰显其指导价值。指南是内部和外部经验的载体,经过不断的实践,在有充分证据的前提下,在一定范围内指南也可以转换为标准。标准也不是永久不变的,也是相对、动态的,随着变化,如出现了更好的技术方法、更多的做事模式,标准也可能转变为指南。
一个组织在建立、完善自己的过程体系时,必须识别出恰当的标准和指南,并根据变化对它们及时更新、调整。这一条做不好,必然出现定义的过程和执行的过程脱节的问题,这就是典型的两张皮。
来源于丛斌博士