从技术趋势看质量赋能
读完需要
11分钟速读仅需 4 分钟
《敏捷团队的质量保障赋能》一文从敏捷价值观出发,结合 Google、Amazon、Facebook 等前沿大公司的质量赋能策略与实践,以及笔者多年在敏捷团队经历的赋能实践,跟大家一起探讨了敏捷团队质量保障赋能的必要性和落地策略。
本文通过分析近十来年《ThoughtWorks 技术雷达 ( https://www.thoughtworks.com/cn/radar )》(以下简称技术雷达)上的各种技术、工具,从质量赋能角度来看相关技术发展所呈现出来的趋势,再次思考质量赋能该怎么做。
1
技术趋势
技术趋势主要有以下三个方面:
CD 技术、DevOps 工具使得软件开发呈现全流程标准化趋势
大量测试和流程自动化工具助力标准化的实施
系统韧性成为质量的一部分,测试不再是质量保障的唯一方式
软件开发的全流程标准化
随着持续集成、持续交付、DevOps 技术的发展,技术雷达上一系列的标准化技术和工具被采纳,主要集中在流水线以及流水线上的标准化工具(代码格式、提交规范等),包括专用于移动应用的流水线技术和工具,另外有平台级的方案——集成多套工具集的 Azure DevOps ( https://www.thoughtworks.com/cn/radar/platforms/azure-devops )和适用于机器学习的一整套端到端的持续交付策略 CD4ML(机器学习的持续交付) ( https://www.thoughtworks.com/cn/radar/techniques/continuous-delivery-for-machine-learning-cd4ml )。
其中,需要重点提及 Build pipelines(构建流水线) ( https://www.thoughtworks.com/cn/radar/techniques/build-pipelines )和 Automated deployment pipeline(自动部署流水线) ( https://www.thoughtworks.com/cn/radar/techniques/automated-deployment-pipeline )技术,这两个技术打通了从代码到发布的全流程标准化,具有标志性的意义。下面是技术雷达对这两项技术的描述:
Build pipelines 构建流水线
Automated deployment pipeline 自动部署流水线
大规模自动化助力标准化
全流程的标准化使得自动化更加容易,而大规模的自动化助力标准化更好的开展。自动化分为流程自动化和测试的自动化,从技术雷达上可以看到大量自动化相关技术和工具。其中流程自动化主要体现在基础设施管理和测试相关的工具、X 即代码的方便自动化的技术、流程环节的自动化工具——自动发布和自动依赖检查等,测试自动化则包括测试分层技术、不同测试类型的技术和工具——消费者驱动的契约测试、API 测试、前端测试、WebUI 测试、性能测试工具等。
其中,要要特别强调的是 Test at the appropriate level(合适的测试分层) ( https://www.thoughtworks.com/cn/radar/techniques/test-at-the-appropriate-level )技术,测试分层是精益测试 ( https://www.bylinzi.com/2020/06/18/lean-testing/ )、提高测试有效性的关键技术,对自动化测试的开展有着至关重要的作用。下面看看技术雷达怎么说:
Test at the appropriate level 合适的测试分层
系统韧性成为质量的一部分
随着业务形态、数据复杂度、技术架构和基础设施的发展,软件系统所处生态的日益复杂,不确定性因素增加,软件系统没法通过测试来保障 100%的可靠性和正确性;另一方面,对速度的要求越来越高,从一个点子到开发出产品交付给最终用户的时间越短越好,同时,速度上的质量备受关注,快速获取反馈成为关键。因此,提高系统韧性,尽早发布到生产环境,以利用生产环境独有的数据来获取反馈,尽快的优化是应对策略。
技术雷达上有很多体现这一趋势的技术与工具:可观测性和监控、混沌工程相关技术和工具,还有 1%金丝雀发布等。
这里要重点介绍 Focus on mean time to recovery(关注平均恢复时间) ( https://www.thoughtworks.com/cn/radar/techniques/focus-on-mean-time-to-recovery )和 QA in production(生产环境下的 QA) ( https://www.thoughtworks.com/cn/radar/techniques/qa-in-production )。
Focus on mean time to recovery 关注平均恢复时间
从对平均故障间隔的关注转到对平均恢复时间的关注,表明快速获取反馈、快速交付、提高系统韧性的需求。
QA in production 生产环境下的 QA
生产环境下的 QA 包含多种方式,详情可以关注我之前的文章《生产环境下的 QA》。
2
质量赋能利器
标准化和自动化是质量赋能的必要利器
前面三个趋势总结说来体现在两个方面:标准化和自动化,这跟《敏捷团队的质量保障赋能》中介绍的大公司实践是一致的。其中,标准化包括标准流程和标准实践,自动化涵盖测试自动化和流程自动化。
真正的赋能利器
标准化和自动化很关键,但只是涉及到技术和工具层面,有了这些技术和工具是不是就能给团队进行质量赋能了呢?我们先来看下面两个问题:
一方面,曾听到不少相关反馈,比如说组织购买了自动化工具,觉得可以提升效能,于是减少测试人员,但是发现效能并没有得到很好的提升,原因是工具没有得到有效利用;同样地,也有工具厂商反应他们的工具卖出去急需对使用工具的人员进行赋能,让其了解工具的正确打开方式,了解工具真正带来的价值体现在哪里。
另一方面,随着持续交付技术和 DevOps 工具链的发展,大量原来需要 QA 手动完成的事情都被自动化了,也就是说 QA 的工作逐渐被取代。在这样的趋势下,QA 是否还有存在的价值成为颇受关注的问题。
基于这样的趋势现状,根据三级 QA 能力模型,QA 需要从普通的质量保障工作者转变为质量倡导者,承担起赋能者的职责,去给团队不同角色进行质量赋能,帮助团队提高质量意识,更好地理解质量目标以及正确的质量保障方式。
因此,真正的赋能利器包括标准化、自动化和质量倡导者 QA。
3
质量赋能之道
团队的质量赋能是团队的事情,要实现成功的赋能会受到很多因素的影响,光有赋能利器还不够,更为关键的还有以下几个方面:
文化认知方面
要营造免责文化,鼓励团队成员创新、勇于试错,持续改进,不断发展。
要营造团队整体负责的质量文化,鼓励大家发挥主观能动性,行使质量所有权。
目标驱动
目标是引导团队往正确方向前进的关键,质量赋能需要有明确的质量目标驱动。要实现团队质量赋能,要做到团队为质量负责,质量目标需要在团队内达成共识,要让每个人都清晰理解这个目标。
策略指导
有了目标,还需要有清晰的质量策略来指导,团队在对策略达成共识的前提下,每个人发挥各自的优势,高效达成目标。
策略会受到多重因素的影响,每个阶段团队面临的急需要解决的问题也会不一样,显然策略需要适应这种不同,质量策略需要做到持续地演进。
能力建设
工具不能解决根本问题,人是非常关键的因素,组织要关注人员能力的培养。团队的质量赋能,需要团队进行充分地沟通和协作,要注意培养团队人员这方面的能力;另外,对于交付价值的正确理解至关重要,需要以价值驱动开展一切工作,包括人员能力的培养。
4
写在最后
关于团队质量赋能,需要谨记如下几个方面:
团队质量保障赋能是大势所趋,组织需要引起重视;
工具不是万能的赋能利器,QA 需要转变为赋能者、质量倡导者;
文化认知、质量策略、人员能力不能成为质量赋能路上的绊脚石。