研发质量指标大 PK:MTTR vs MTBF,谁是靠谱王?

在研发质量管理中,「提高代码/测试质量」更重要,还是「提升故障响应能力」更重要?

LigaAI 最近和一些朋友探讨了这个问题。一种观点认为提升研发质量应该从代码质量抓起——擒贼先擒王,从源头减少故障发生才是根本之道;

另一种声音则指出,生产故障几乎不可能通过预防完全避免,因为「未知」是无法预测的,因此加强监测与反馈机制,快速识别、快速修复才是真正的有效之治。

从管理指标的角度来看,「提升代码质量」意味着研发团队要尽可能提高 MTBF(平均无故障时间),延长系统可持续运行时间,而「提升响应能力」要求尽可能减少 MTTR(平均恢复时间),将系统不可用时间降到最短以最小化故障影响。

温馨提示:研发团队应当先全面讨论系统「服务时间」「可用时间」和「不可用时间」的定义、事件覆盖范围以及故障等级,并在组织内部建立统一的理解,以确保资源和精力花在最重要的事件上。

尽管在实际工作中,「提高 MTBF」和「减少 MTTR」总是齐驱并进,但在不同发展阶段明确二者的优先级,将有助于研发团队高效专注、有的放矢地实现研发效能管理目标。

MTBF 和 MTTR 将如何影响研发效能?我们先从研发质量管理的三个维度说起。

01 研发质量管理的「RAM」

在管理实践中,我们常用「RAM」评估软件交付性能。这里的「RAM」当然不是 Random Access Memory,而是三个用于描述系统服务质量高低的关键维度——可靠性、可用性和可维护性。

1. 可靠性 Reliability

可靠性是指系统无故障运行的能力——哪怕出现软硬件故障、人为错误等问题,系统仍能正常提供正确服务而不发生服务中断的概率。

它与故障率、容错率、避错力、冗余度等紧密相关。常见的软件可靠性度量指标包括可靠度、失效率、MTBF 和 MTTF 等等。

2. 可用性 Availability

可用性是指在一定时间内,系统能够持续且正确提供符合期望水准的服务而不发生故障和中断的概率,通常用 SLA(Service Level Agreement,服务级别协议)来表示。

系统可用性(或称可用度)可以用系统可用时间占总服务时间的百分比计算得出,即

3. 可维护性 Maintainability

可维护性包含可修复性和可改进性两个方面。前者是指在系统发生故障后,不同人员高效修复故障,使之恢复正常运行状态的难易程度,而后者表示当需求或环境变化时,系统接受功能改进或增加新功能的可能性。

可靠性和可用性都可以展示系统的持续服务能力。区别在于,可用性更加关注系统服务的总体持续时间,而可靠性侧重于描述系统的抗故障能力。《分布式系统原理与范型》为区分可靠性和可用性提供了一个非常直观的例子:

如果系统在每小时崩溃 1 ms,那么它的可用性就超过 99.9999%,但是它还是高度不可靠。与之类似,如果一个系统从来不崩溃,但是每年要停机两星期,那么它是高度可靠的,但是可用性只有 96%。

02 如何确定 MTBF 和 MTTR 的优先级?

对于不同组织或者同一组织的不同发展阶段,提升研发质量的有效手段很可能截然不同。那么,是否存在某种范式,可以帮助研发团队科学精准地确定 MTBF 和 MTTR 的管理优先级?

前面提到,可用性的计算公式可表示为系统可用时间占总服务时间的比重,即 MTBF / (MTBF + MTTR)。简单变形后,便可以获得以下关系式:

① MTBF = 可用性 * MTTR / (1 - 可用性)

② MTTR = MTBF / 可用性 - MTBF

对于已知的 MTBF 或 MTTR 值,研发团队可以结合系统可用性增长目标,计算出团队故障恢复能力或系统平均无故障时间的所处水平,并了解量化指标的预期增量。

举个例子。已知研发团队恢复一个故障的平均耗时为一个小时,如果系统每 9 小时出现一次故障,其可用性就为 90%。如果想将系统的可用性提高至 99%,那么故障频率应降低至每 99 小时(即 4.13 天)一次。

同样的,对于故障频率为每周一次的系统而言,如果研发团队能在 1.7 个小时(等价于 102 分钟)内让系统恢复正常工作,则其可用性便能达到 99%。

根据系统的故障频率以及研发团队的故障恢复水平,管理者可以将可用性提升目标翻译成 MTBF 或 MTTR 的优化目标,将抽象指标具象化,并综合目标实现难度、资源可用情况等明确首要优化对象,精准提升效能。

03 MTTR vs MTBF,谁更胜一筹?

Chad Fowler 认为,对大多数组织或系统而言,优化 MTTR 比增加 MTBF 更加有效。DORA 指标同样将 MTTR 视为影响研发效能和软件交付性能的四大关键指标之一。

一部分原因是软件系统不同于物理设备,其故障偶发性强,因而 MTBF 管理的不可控性较高。而恢复故障的工作流程清晰,操作步骤明确,可干预程度高;研发团队可以对各环节展开精细化管理,轻松、高效地达成 MTTR 优化目标。

研发团队可以使用敏捷开发方法、自动化监测和预警工具、自动化部署工具、灰度发布、A/B 测试等,缩短 MTTD、MTTA、MTTI、MTTR(Mean Time To Repair)等时间,以快速识别、定位和修复故障,快速上线。

不仅如此,Sidu Ponnappa 还指出,MTTR 是弥合业务与技术理解鸿沟的关键。它可以帮助企业更好地理解技术团队与研发工作,还可以帮助技术领导者识别系统的薄弱环节以及需要关注的对象,是衡量组织弹性、团队结构和整体健康状况的有力指标。想要改进 MTTR,研发团队必须构建正确的知识,改进质量控制实践,并重视内外部的沟通。

# LigaAI 总结

可靠性、可用性和可维护性是评估研发质量的三大维度,其中可用性可以用 MTBF / (MTBF + MTTR) 计算得出。

在研发管理实践中,优化 MTTR,提高故障响应能力更具指导意义。研发团队可以结合敏捷开发方法、自动化工具等,建立高度自动化的监测、反馈、测试、部署流程,实现高速提效。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容

  • 研发质量管理中的 MTTR、MTBF、MTTF、MTTD 都是什么?今天我们从生产事件的全生命周期出发,认识研发质...
    LigaAI阅读 836评论 0 0
  • 软件产品质量模型最新的是GB/T 25000.10—2016,该国标对应的国际标准为ISO/IEC 25010—2...
    robot_test_boy阅读 9,147评论 1 4
  • 质量 实体基于实体特性满足需求的程度 质量的高低分为3个层次 1.满足需求规格的要求 —— 软件满足软件需求说明书...
    E术家阅读 1,258评论 0 0
  • 当系统不再提供与其规范一致的服务时,故障就发生了,可用性就是指系统修复故障的能力,它关注的方面包括如何检测系统故障...
    yuruilee阅读 1,991评论 3 1
  • 思考🤔 如何保证房屋建筑的质量如何保证汽车/飞机的质量如何保证互联网产品的质量 何为质量,质量模型,质量量化指标(...
    上山走18398阅读 1,327评论 0 5