质量内建实践的八大特质
在前面的文章《质量内建落地的四要素》中,聊过质量内建落地要面临的挑战,以及在团队内落地质量内建,最核心的四个要素:组织+文化+方法+工具。
上周日晚上在面向星球内部同学的分享时,我也大略介绍了要实践质量内建需要具备的八大特质,由于内部分享的内容太多,关于质量内建只是做了大致介绍。这篇文章,我会分享和质量内建的八大特质相关的内容。
质量内建的核心
质量内建的作用是在软件的整个生命周期中,要求参与的各个角色实时对软件的质量负责,确保软件在交付到下一环节前已经有了基础的质量保证。目的是为了减少因为前期风险不可控而导致后期的修复成本增加,进而浪费大量资源。与其说质量内建是一套方法论,我更认为其本质是一种思想和文化。通过全生命周期的全员对质量负责的理念,来指导在实际的软件研发过程中关注质量,提高设计和构建质量。
概括来说,质量内建的核心有这几点:全体负责、控制风险、关注和提高质量。
软件的整个生命周期如下图产品迭代闭环图所示:
全体负责,即意味着参与项目的各个角色,如项目负责人、项目管理、产品、研发、测试、运维等多个角色都对最终的线上产品交付质量负责一定责任。
控制风险,即在软件生命周期中的每个环节,都要利用质量门禁的作用尽早的介入需求设计、产品设计和技术方案设计等环节,通过评审、提问等方式,尽可能多的发现存在的漏洞和不足,然后通过制定科学合理符合项目实际情况的准入准出标准,来保证每个环节流转到下一环节的产出物达标。
至于提高质量,这是软件测试或者说质量保障工作一直以来的目标。
那么如何做到通过质量内建来持续提高最终的交付质量呢?我个人认为需要具备八个特质。
质量内建的八大特质
从上述的产品迭代闭环模型图和质量内建的核心内容来看,质量内建的八个特质如下图:
持续评估
质量内建的核心之一在于控制风险,风险可以分为过程风险和结果风险。
在产品迭代生命周期中,从计划到线上交付这个过程中存在的可能影响产品质量的因素,都叫做过程风险。比如:需求不明确、资源不足 &技术实现方案难度大耗时长,都属于过程风险。
因此需要通过持续评估的方式,根据现状不断调整项目的资源投入,控制项目进度,以确保风险在可控范围内。
持续改进
通过持续评估发现过程风险后,在技术实现层面就需要不断改进方案。比如选择更轻量级的技术框架,比如通过快速迭代的方式尽快交付可测试验证的产品,快速发现问题。这样做的目的是在有限的时间资源限制下,提高过程效率。
持续验证
技术实现层面的更快交付,意味着测试验证这一环节要跟上。以往我们所熟悉的系统测试、整体提测这种时延较长的测试方法就有必要进行改进。比如通过大量的自动化测试来提高验证效率,将自动化测试集成到 CI 流水线里面。
持续交付
传统的软件产品迭代方式,蒙头憋大招,可能一个月线上发布一次,这样会导致测试验证范围过大,且交付后的风险范围也会变大。而持续交付的价值在于,每次线上产品发布的范围更具体,风险控制和测试验证成本更低,也能以更快的方式知道最终的交付结果。
当然,为了降低线上交付的风险,近几年业内也有很多有效的技术实践,比如灰度发布、蓝绿发布。
持续巡检
测试同学日常工作的大部分时间,都是花费在测试环境的结果验证上,但其实一个软件产品真正的质量如何,在于线上发布之后的结果。受限于账号权限、风控安全等原因,当前业内对于产品线上发布后的质量验证其实做的比较少,这就导致了我们对于线上质量的感知和风险控制是比较滞后的,往往只能疲于应付各种线上问题和故障复盘。这样做不能说是无用功,但本质上是一种刻舟求剑亡羊补牢的措施。
因此在产品交付线上后,通过线上的持续巡检手段,不断发现可能存在的结果风险,也是保障和提高质量的重要措施。线上持续巡检,既可以通过自动化的方式进行巡检,也可以通过监控发现或者人工盯盘的方式来持续进行。
持续度量
记得有次面试一个测试负责人岗位,面试官问了这样一个问题:如何定义一个产品的质量好坏?
我的回答是:线上没问题或者线上问题少,且问题可以被及时发现和处理,可以将问题带来的风险和影响控制在可接受范围内,就可以看做这个软件产品的质量是比较好的。
线上产品的交付质量,需要明确的指标来进行度量,且这种度量手段一定要持续进行,才能获得精准的线上质量。
持续运营
技术本身不能直接创造利润,但技术通过实现业务的目标,提高用户体验,可以为企业带来利润,这个时候技术的价值才能体现出来。
只有通过持续度量线上产品质量,才能知道我们围绕质量所开展的一系列技术工作,是否产生了正向价值,产生的价值是多少。持续的运营这种围绕产品质量的技术实践和质量文化,才能不断支撑业务目标达成,提高用户体验。
持续反馈
产品线上交付后,通过对业务目标是否达成,以及对具体的业务目标进行评估,才能知道技术的实践哪里做得好,哪里还需要优化。且产品交付后,用户的体验和反馈建议,往往也是产品后续迭代的方向。
因此需要建立线上的持续反馈机制,将用户建议、客诉、线上问题等通过复盘分析等方式,得到下一步的改进方向。并在后续的迭代中持续评估改进,通过持续验证,提高交付质量。
质量内建的这八大特质,需要围绕产品迭代闭环模型来理解和实践。
实践过程中,需要组织自上而下的推动和宣导质量内建的文化,制定合理的流程规范来保证实践方向,需要合理的激励措施和错误预算空间来冗余。需要采用适合自身状况的方法,选择合适的技术框架和工具来辅助和提高过程效率。
版权声明: 本文为 InfoQ 作者【老张】的原创文章。
原文链接:【http://xie.infoq.cn/article/7be1f0171b7cd2c50efc1ca1f】。文章转载请联系作者。
评论