什么是质量工程?(上)

简介: 什么是质量工程?

质量工程是在精益、敏捷、DevOps 等实践基础上进一步发展出的系统化赋能软件开发流程、构建既快又好的开发框架的实践原文: What is Quality Engineering



我们基于古法语"definer"的定义,通过澄清边界、要素和相互作用的方式来构建某个概念,本文将讨论软件行业中质量工程(Quality Engineering)的这三个要素。


本文中质量工程的定义是建立在精益、敏捷和 DevOps 的发展基础上的,但不仅仅只是对传统的质量保证(Quality Assurance)新瓶装旧酒的重命名。


质量工程是关于如何在软件生产系统上行动的一种范式转变,通过集中、实用的转型来创建快速交付高质量软件的持久商业竞争优势。

为什么需要质量工程

有很多条件约束的压力挑战

加速变化、颠覆性创新和 BANI 世界中的全球化竞争是所谓"数字化转型"的关键特征。在这种情况下,最佳实践很容易被复制,通过卓越运营获得的竞争优势充其量只是暂时的。


因此,为了生存,组织面临许多数字化挑战:


  1. 持续交付价值以保持竞争力
  2. 在低可预测性前提下做出投资和方向决策
  3. 向无法直接交互的"用户"提供成功的体验
  4. 快速交付抽象增量,并通过实验进行调整
  5. 简化端到端复杂性和相互依赖的过程。


与此同时,生态系统的发展也增加了更多限制:


  • 授权客户需要实时解决方案,否则就切换
  • 职位空缺率为 25%,员工轮岗率为 30%
  • 各级资源正变得越来越稀缺

速度是数字化业务的强制性要求

许多组织为了生存只能选择数字化,但在试图以更快的速度交付软件时面临许多问题: 增加的交付时间、返工和反复出现的问题,很难理解这不仅仅是采用 DevOps、敏捷或特定工具的问题。


规模经济的工业模式已经不够了,具有更好价值主张的新参与者可以在几个月内彻底颠覆现有业务,快速适应业务和持续的迭代速度已成为企业最宝贵的竞争优势。

短期速度导致生意失败

面对速度的迫切性,许多组织将精力集中在"加速"价值交付的节奏上。这种策略可能会导致短期产生大量成本,并且积累的债务最终会减慢迭代节奏,而且很难通过快速修复来扭转趋势。


短期权衡导致软件生产系统的碎片化


这种模式无法在竞争激烈、不可预测和复杂数字环境中生存,因为可持续的软件开发速度是唯一能够保持持续价值交付流的竞争优势。

孤立计划往往以浪费告终

在软件开发的动态环境中,有大量改进计划: 从敏捷方法到 DevOps 实践,从平台工程到 SRE 原则,等等。真正挑战在于辨别哪些举措将产生最具影响力、最持久的结果。


在一个时间和资源有限的世界里,组织必须谨慎选择并集中精力在最有价值的优先事项上。关键不在于仅仅为了赶时髦而采用流行的实践,而在于战略性投资于能够创造重大、可持续转变的主动性。


孤立的努力有分散资源的风险,而无法带来相应的收益,集中、全面的方法对实现实质性和持久的业务改进至关重要,需要确保资源得到有效利用,并将浪费降到最低。

定义质量工程

质量工程不是什么

质量工程不是质量保证工程(Quality Assurance Engineering)。


"质量工程"这个词汇让我们觉得目标是通过在流水线里加入更多测试自动化和集成从而将质量通过工程化的方式嵌入软件交付流程中。虽然这些改进是必需的,但显然不足以解决诸如组织或协作之类的非技术主题。


软件生产是由人、过程和技术组成的系统中相互依赖部分的协作产生的。因此,质量的注入不能局限于软件交付流水线,而必须涵盖组成软件生产系统的整个领域。

什么是质量工程

质量工程的定义是:


"质量工程通过系统的方法将全面质量管理应用到软件生产中,从而为可持续的业务速度构建质量能力。" — Antoine CRASKE


质量工程是全面质量管理(Total Quality Management) 在软件工业中的应用,将不同领域的成熟实践整合为软件生产系统的一部分,利用体系架构的力量来组装最有价值的部分。


在商业环境中,由于资源稀缺,竞争更加激烈,组织可以为不确定性做好准备,以构建自己的软件生产系统,作为相对于适应、学习和创新较慢的竞争对手的持久竞争优势。

理解质量工程

对质量工程的理解需要构建核心原则、边界和概念,以便在软件生产系统的每个元素中注入质量。

质量工程哲学

质量工程的基本逻辑被概括为"构建更好(Build Better),构建更快(Build Faster)",代表了需要关注软件生产的每个方面都构建得更好,以获得可持续的开发速度。


质量工程的范式转换依赖于以下原则:


  1. 业务取决于软件的质量和速度
  2. 质量包括整个软件生产系统
  3. 只有通过内建质量才能保持速度


可持续业务速度的北极星指标需要关注第二点,使质量成为整个软件生产系统中的一流公民,因而需要定义质量工程的边界。

质量工程边界

从系统角度来看,质量工程作用于软件生产系统,将数字业务理念作为输入,并在实际操作中创建软件增量作为输出,并且在理想情况下是有价值的。


从更大的角度来看,质量工程的左右边界从最小的软件生产系统开始,通常是在 2-3 人的启动阶段,然后在剩下的业务成熟阶段,通过系列 A 到系列 E,大约需要 500 名专职人员致力于软件生产。


质量工程支持可持续软件生产系统的开发


在底层,质量工程确定了必要的软件生产元素,但没有详细说明其完整实现,而是留给每个领域的现有知识体系。在上层边界上,质量工程不包括软件生产系统的用途,也就是特性。

质量工程知识体系

从实现角度来看,质量工程需要对全局的理解,以发现系统问题和架构师关注的解决方案,有效解决关键原因和限制因素。


质量工程的主要知识领域是:


  • 用于整合软件生产领域的精益、敏捷、DevOps
  • 系统思维和体系架构是系统方法的核心
  • 参与者合作的组织和人类行为


质量工程为全面质量管理巩固了软件行业实践


精益实践,以其效率和减少浪费的原则而闻名,与质量工程架构交织在一起。集成了领导和管理转型的原则确保向更优化的软件生产系统平滑演进。


质量工程在多个软件行业实践的基础上构建了软件生产系统的大图景,这些实践是多年的经验、知识获取和社区共享获得的。


质量工程的简化元素和框架使我们能够利用知识体系,而不必学习所有东西。

质量工程的关键要素

质量工程的基础是理解和解决质量和速度相关的挑战。


质量工程的系统方法支持软件生产系统的全局视图,将其视为部分的总和,这些部分的输入和输出都得到了改进,从而建立了快速质量的能力。

目录
相关文章
|
运维 大数据 Devops
研发管理难题如何破?云效打造强有力的阿里技术中台
云效(内部叫Aone)就是阿里的2万多名工程师和几万名员工协作沟通的工具,为了产品研发提供一个标准化的平台,覆盖从研发,到发布,再到日常运维的一站式平台,能够让开发同学通过这个平台,低成本的按照统一的流程进行研发活动,减少错误,提高效率。
5676 1
|
Ubuntu Linux 网络架构
OpenWRT 的包管理器镜像如何切换成阿里云源?
OpenWRT 的包管理器镜像如何切换成阿里云源?
3907 0
|
机器学习/深度学习 数据可视化 算法
数据分布不明确?5个方法识别数据分布,快速找到数据的真实规律
本文深入探讨了数据科学中分布识别的重要性及其实践方法。作为数据分析的基础环节,分布识别影响后续模型性能与分析可靠性。文章从直方图的可视化入手,介绍如何通过Python代码实现分布特征的初步观察,并系统化地讲解参数估计、统计检验及distfit库的应用。同时,针对离散数据、非参数方法和Bootstrap验证等专题展开讨论,强调业务逻辑与统计结果结合的重要性。最后指出,正确识别分布有助于异常检测、数据生成及预测分析等领域,为决策提供可靠依据。作者倡导在实践中平衡模型复杂度与实用性,重视对数据本质的理解。
933 3
数据分布不明确?5个方法识别数据分布,快速找到数据的真实规律
|
缓存 Java
centos6更换yum源报错的解决方案
centos6更换yum源报错的解决方案
1980 0
|
11月前
|
算法 Java 开发者
Java 项目实战数字华容道与石头迷阵游戏开发详解及实战方法
本文介绍了使用Java实现数字华容道和石头迷阵游戏的技术方案与应用实例,涵盖GUI界面设计、二维数组操作、游戏逻辑控制及自动解法算法(如A*),适合Java开发者学习游戏开发技巧。
709 46
|
机器学习/深度学习 人工智能 搜索推荐
AI在医疗诊断中的应用:精准医疗的加速发展
【9月更文挑战第16天】随着人工智能(AI)技术的不断进步,医疗领域正经历前所未有的变革。本文探讨了AI在医学影像分析、病历数据分析和病症诊断预测等方面的应用,展示了其在提高诊断准确性、推动个性化治疗和促进医疗资源均衡分布方面的巨大潜力。AI正加速精准医疗的发展,有望在未来实现更智能、个性化的医疗服务,全面提升医疗质量和效率。
714 12
|
运维 安全 网络安全
没有谁不可或缺,宝塔的3个替代品
随着软件数量和复杂度增加,宝塔面板因用户友好的界面和丰富功能成为首选。但技术进步和开源社区发展催生了Websoft9、FastPanel和Urlos等新工具,它们在特定领域提供了与宝塔面板相媲美或更优的解决方案。本文介绍这三款工具的特点,旨在为用户提供更多选择参考。
1828 0
没有谁不可或缺,宝塔的3个替代品
|
存储 算法 C语言
C语言手撕实战代码_二叉树_构造二叉树_层序遍历二叉树_二叉树深度的超详细代码实现
这段代码和文本介绍了一系列二叉树相关的问题及其解决方案。其中包括根据前序和中序序列构建二叉树、通过层次遍历序列和中序序列创建二叉树、计算二叉树节点数量、叶子节点数量、度为1的节点数量、二叉树高度、特定节点子树深度、判断两棵树是否相似、将叶子节点链接成双向链表、计算算术表达式的值、判断是否为完全二叉树以及求二叉树的最大宽度等。每道题目均提供了详细的算法思路及相应的C/C++代码实现,帮助读者理解和掌握二叉树的基本操作与应用。
590 2
|
物联网 智能硬件
智能穿戴
智能穿戴设备在近年来得到了飞速的发展,它们不仅具备传统手表、眼镜等穿戴物品的基本功能,还集成了许多高科技元素,如健康监测、运动追踪、消息提醒、支付功能等。针对你提到的“对以上内容做智能穿戴操作”,我将提供一个基于智能穿戴设备(如智能手表或智能手环)的操作示例流程,这个流程旨在展示如何使用智能穿戴设备进行一系列常见的操作。
|
人工智能 运维 安全
什么是质量工程?(下)
什么是质量工程?(下)
351 0