在当今互联网环境下,需求变更越来越快,交付周期却越来越短,

怎么判断一个系统是否测试充分?

产品质量满足什么样的条件才能投产?

如何判断测试工作、研发团队工作的效率是高还是低?

这些问题不能靠感觉、拍大脑,而是需要客观的数据来反映。质量度量指标就是用一组数据来客观衡量产品研发环节的各方面情况,作为评审和决策的依据。

而为了能够在产品发布前,对产品质量能够做出比较准确的判断,需要清楚质量的属性,这就需要建立质量模型。

说起质量模型,必然绕不开ISO9126,ISO9126软件质量模型是评价软件质量的国际标准,由6个特性和27个子特性组成,如图一所示。建议大家可以深入去理解各特性、子特性的含义和区别。这个模型是软件质量标准的核心,对于大部分的软件,都可以考虑从这几个方面 着手进行测评。

(图一)

本文就给大家聊一聊关于产品质量度量以及研发效能度量的内容,并分享一些笔者在公司内部的度量实践和观点,希望对大家有所启发。

1. 摆正观点:产品质量度量原则

产品质量度量或研发效能度量的原则:不要与绩效挂钩,而应该作为参考和工具,帮助团队提高效能和产品质量。因为无法覆盖 100% 的度量指标,把度量与绩效挂钩就一定会产生“做数字”的现象。这时,使用质量度量或效能度量非但起不到正面效果,还会对公司和团队造成伤害。

2. 质量度量目标

研发质量度量核心思想一句话来概括:目标驱动,度量对的事;先从全局上找瓶颈,再深入细节;两个基本原则:

  1. 度量应聚焦在全局指标而不是局部指标

  2. 聚焦在结果产出而不是某阶段工作输出

围绕度量的核心思想和基本原则,在公司团队实际应用度量手段时,最终目标并不是为了提高表面的数字指标,本质还是需要借助度量方法达成以下几个目的:

  • 跟踪团队的表现、提高团队工作效率、绩效和产品质量;
  • 使用度量来寻找问题而不是用来做绩效考评;
  • 使用度量来检验改进措施的效果;
  • 提高项目计划、效付的精确度;
  • 了解流程是否高效,寻找需要改进的关键领域。

由此我们不应对那些看似繁忙但只产出了一大堆无效工作输出的团队或人员进行奖励,而是引导到那些对促进组织达成目标有实际帮助的工作上去。

3. 效能度量的几个维度

正如刚提到的,度量的目标之一是为了帮助团队寻找问题,并检验改进措施效果,因此不同公司团队所处阶段、研发能力成熟度、团队面临问题的不同,导致了度量方法并没有所谓的唯一性,团队需要根据自己的问题选择合适的度量方法。并且即使是在同一个公司团队内,度量方法也应该是持续演进的,并不是固定不变。

虽然度量方法没有唯一性,但行业众多公司经过大量的度量实践,也有一些普适性的考量维度,供大家参考,大致分为三类:

  • 基于研发效能,3个维度:交付效率、交付质量、交付能力
  • 基于团队+个人,4个维度:质量、速度、效能、准确度。
  • 基于产品质量,3个维度:产品内部质量、产品外部质量、产品使用质量。

其中,交付效率、交付质量和交付能力,这些指标的提升需要组织进行管理、技术、协作等多方面的系统性改进。

而研发效能度量指标一般用来衡量软件产品的生产过程和产品质量,但公司真正需要关注的是否能产生用户价值。因此如果从质量管理的角度,我更倾向于第三种。

(来源:facebook葛俊老师)

上图分享了一张facebook葛俊老师整理出来的一张研发效能度量指标,里面涉及到的度量指标有很多,实际还远不止于此,考虑到指标数据收集和统计的工作量及其对衡量工作和结果的权重,建议大家可以从众多指标中选取若干指标,并将这些度量指标进一步分为必选和可选两部分,可在不同的测试要求下进行自如地裁剪或添加。

4. 产品质量度量「V2」模型

接下来,分享一下,笔者公司对质量度量的一些实践经验。

结合2020年研发中心产品团队发展现状及团队当前目标,为了更好的促进产品质量发展研发效能过程管理,笔者将产品质量度量模型进行升级调整为:V2。

新的V2产品质量模型中,将产品质量按照:研发全产品质量各产品之间质量横向对比单个产品质量详细等三个版块并从外部质量、内部质量、使用质量等三个维度进行产品效能质量过程管理,并提取出相应的适合当前团队的质量指标。

4.1 全产品质量度量

1、全产品研发质量度量指标导图:

4.2 各产品之间质量度量对比

1、各产品研发质量度量指标导图:

4.3 单产品质量度量

1、单产品研发质量度量指标导图:

PS: 以上指标解释权归本文笔者所有,度量的目的是促进质效提升和检验改进的效果,是一种参考工具,但并非是捆绑手段。

以上只是列举分享了笔者当前正在实践的一些常用指标,实际应用时,结合了度量的通用报告模板、数据模型。当然这些指标并非唯一,仅供大家参考。

5. 小结

其实,使用何种度量方法、指标,是一个仁者见仁,智者见智的问题。所以,通过这篇文章,我更希望达到的目的是,能帮助你对日常工作中最常见的问题进行思考,寻找值得优化的地方,从而提高个人和团队的研发效能。但,我还要强调的是,度量只是辅助,更重要的还是思考。所以,我建议你不要花费过多的时间在指标研究上,要时刻留意实际的投入产出比。

最后,分享一下我个人对效能度量的几大感受:

  • 1、度量只是工具,不是目的。切记度量的真正的目标是提高效能,不要舍本逐末。比如说,如果度量花费的时间超过了收益,那就不要去做。
  • 2、虽然我们推崇数字驱动,但在效能的度量上,不要过于迷信数字,适当使用主观反馈效果反而更好。
  • 3、研发效能的度量看似是一个无解的问题。但如果使用得当,效能度量是可以给公司的研发带来非常大的好处。

DevOps研发模式下「产品质量度量」方案实践的更多相关文章

  1. 企业DevOps研发模式下CI/CD实践详解指南

    阅读全文大概需要 10分钟. 1. 前言 借着公司今年新组建的中台研发部东风,我作为其中的主要负责人,在研发中心主导推行DevOps研发管理模式转变及质量管理创新建设,本篇文章摘取自今年9月底,笔者在 ...

  2. B 站崩了,总结下「高可用」和「异地多活」

    你好,我是悟空. 一.背景 不用想象一种异常场景了,这就真实发生了:B 站晚上 11 点突然挂了,网站主页直接报 404. 手机 APP 端数据加载不出来. 23:30 分,B 站做了降级页面,将 4 ...

  3. [转载]Web 研发模式演变

    原文链接:https://github.com/lifesinger/blog/issues/184 前不久徐飞写了一篇很好的文章:Web 应用的组件化开发.本文尝试从历史发展角度,说说各种研发模式的 ...

  4. 淘宝玉伯引发Web前后端研发模式讨论

    淘宝玉伯是是前端基础类库 Arale 的创始人,Arale 基于 SeaJS 和 jQuery.不久前,淘宝玉伯在 Github 的 Arale 讨论页面上抛出了自己对于Web 前后端研发模式的思考. ...

  5. Web 研发模式演变

    前不久徐飞写了一篇很好的文章:Web 应用的组件化开发.本文尝试从历史发展角度,说说各种研发模式的优劣. 一.简单明快的早期时代 可称之为 Web 1.0 时代,非常适合创业型小项目,不分前后端,经常 ...

  6. Web 研发模式的演变

    前不久徐飞写了一篇很好的文章:Web 应用的组件化开发.本文尝试从历史发展角度,说说各种研发模式的优劣. 一.简单明快的早期时代 可称之为 Web 1.0 时代,非常适合创业型小项目,不分前后端,经常 ...

  7. 【转载】Web 研发模式演变

    一.简单明快的早期时代 可称之为 Web 1.0 时代,非常适合创业型小项目,不分前后端,经常 3-5 人搞定所有开发.页面由 JSP.PHP 等工程师在服务端生成,浏览器负责展现.基本上是服务端给什 ...

  8. 拒绝编译等待 - 动态研发模式 ARK

    作者:字节跳动终端技术--徐纪光 背景 iOS 业界研发模式多为 CocoaPods + Xcode + Git 的多仓组件化开发模型.为追求极致的研发体验.提升研发效率,对该研发模式进行了大量优化, ...

  9. 「产品运营」研发效能之DevOps平台如何运营?

    有人常说「酒香不怕巷子深」.不是的,如果这个巷子是酒吧街,那最深的那家酒吧肯定是租金最便宜的.酒吧的地段好坏已经在租金价格上体现出来了.现在已经不是那个工具缺乏.有个工具就拍手称快.欣然去试用的时代了 ...

随机推荐

  1. Java实现 LeetCode 794 有效的井字游戏 (暴力分析)

    794. 有效的井字游戏 用字符串数组作为井字游戏的游戏板 board.当且仅当在井字游戏过程中,玩家有可能将字符放置成游戏板所显示的状态时,才返回 true. 该游戏板是一个 3 x 3 数组,由字 ...

  2. ASP.NET使用HttpHandler进行页面静态化(自动生成页面)

    这次的Demo是,一个根页面,点击链接创建子页面,子页面都是一个Template页面进行替换的 一个根页面 <%@ Page Language="C#" AutoEventW ...

  3. Java实现 蓝桥杯 算法提高 欧拉函数(数学)

    试题 算法提高 欧拉函数 问题描述 老师出了一道难题,小酱不会做,请你编个程序帮帮他,奖金一瓶酱油: 从1-n中有多少个数与n互质? |||||╭══╮ ┌═════┐ ╭╯让路║═║酱油专用车║ ╰ ...

  4. Java实现 LeetCode 240 搜索二维矩阵 II(二)

    240. 搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. ...

  5. Java实现 LeetCode 212 单词搜索 II(二)

    212. 单词搜索 II 给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中&quo ...

  6. Java实现 LeetCode 205 同构字符串

    205. 同构字符串 给定两个字符串 s 和 t,判断它们是否是同构的. 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的. 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序. ...

  7. Java实现 LeetCode 187 重复的DNA序列

    187. 重复的DNA序列 所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:"ACGAATTCCG".在研究 DNA 时,识别 DNA 中的重复序列有时会对 ...

  8. 第八届蓝桥杯JavaB组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.平方十位数 题目描述 由0~9这10个数字不重复.不遗漏,可以组成很多10位数字. 这其中也有很多恰好是平方数(是某个数的平方). 比 ...

  9. Java实现回文判断

    1 问题描述 给定一个字符串,如何判断这个字符串是否是回文串? 所谓回文串,是指正读和反读都一样的字符串,如madam.我爱我等. 2 解决方案 解决上述问题,有两种方法可供参考: (1)从字符串两头 ...

  10. Java实现 洛谷 P1424 小鱼的航程(改进版)

    import java.util.Scanner; public class Main{ private static Scanner cin; public static int DISTENCE ...