什么是质量工程?(下)

简介: 什么是质量工程?(下)

质量工程构建模块

构建块的概念是质量工程的基本元素,共同为有效的软件生产铺平道路。


质量工程构建了以下 3 个核心模块:


  1. 又快又好的痛点(Quality at Speed Pains)
  2. MAMOS 系统领域(MAMOS System Areas)
  3. 产出和成果(Outputs and Outcomes)


又快又好的痛点(Quality at Speed Pains)

前两个关键维度是质量痛点和速度痛点。质量痛点包含了软件生产质量不同方面的相关挑战,而速度痛点需要解决组织不同层次上实现快速、有效软件交付的障碍。


质量痛点更主观,但可以更容易的与不一定熟悉软件生产内部的多个利益相关者交谈。痛点表现为不同形式,比如高度依赖某一个人,或者缺乏可用性。


速度痛点更容易得到真实数据的支持。在这种情况下,相对于其他方面的价值,挑战更多依赖于如何巩固并正确完成构建。

MAMOS 系统领域(MAMOS System Areas)

质量工程的核心是 MAMOS 软件生产系统,它封装了构建快速质量能力的关键原则和实践,通过三个层次确保软件开发的各个方面保持一致。


MAMOS 领域(MAMOS areas)

MAMOS 将软件生产系统架构为关键领域,这些领域既能表示各部分的总和,又允许在集中注意力于各个独立的上下文。


MAMOS 的 5 个领域是:


  1. 方法(Methods): 简化协作以实现精益价值交付
  2. 架构(Architecture): 构建质量驱动的技术平台
  3. 管理(Management): 使参与者和团队能够交付价值
  4. 组织(Organization): 调整团队架构和质量边界
  5. 技能(Skills): 确保对于业务功能支持能力的可用性


以下几点对模型的对齐很重要:


  • 文化(Culture) 本身并不是专门的系统领域,而是由 MAMOS 其他领域的相互作用和动态形成和产生的
  • 架构(Architecture) 领域涵盖了从上游设计、安全性到运营管理的整个技术问题集
  • 技能(Skills) 领域代表能力映射、获取和保留策略,包括内部和外部手段
MAMOS 子领域(MAMOS sub-areas)

MAMOS 框架由不同领域组成,每个领域都包含一组形成软件生产系统的子领域。这些子领域为处理开发的各个方面提供了详细蓝图,确保质量工程原则有效集成到每个领域。



MAMOS 子领域包括:


  • 方法(Methods): 专注(Focus)、计划(Plan)、设计(Design)、指定(Specify)、实施(Implement)、交付(Deliver)、部署(Deploy)、运维(Operate)、学习(Learn)、改进(Improve)
  • 架构(Architecture): 整体规划(Urbanization)、自制或购买(Make or Buy)、模块化(Modularity)、集成(Integration)、安全(Security)、自助服务(Self-service)、可观测性(Observability)、弹性(Resilience)、实验(Experimentation)、灵活性(Flexibility)
  • 管理(Management): 愿景(Vision)、一致性(Alignment)、选择(Choices)、协作(Collaboration)、授权(Empowerment)、绩效(Performance)、风险(Risks)、快速失败(Fail fast)、度量(Measurement)、开发(Development)
  • 组织(Organization): 设计选择(Design Choices)、承诺(Commitment)、组织架构(Organizational Structure)、沟通(Communication)、领导(Leadership)、管理(Management)、参与(Engagement)、人力规划(Workforce Planning)、组织学习(Organizational Learning)、组织文化(Organizational Culture)
  • 技能(Skills): *专业知识映射(Expertise Mapping)、战略伙伴关系(Strategic Partnerships)、远程支持(Remote Enablement)、促进发展(Development Facilitation)、吸引人才(Talent Attraction)、留住人才(Talent Retention)、团队合作(Teamwork)、外部沟通(External Communication)、社区建设(Community Building)、持续学习(Continuous Learning)。
MAMOS 单元(MAMOS units)

单元进一步将子领域分解为可操作的组件,提供对如何实际实现每个子领域以增强软件生产过程的细粒度理解。


MAMOS 单元完整示例


让我们用方法领域和焦点子领域的具体示例来说明:


  • 战略定义(Strategy Definition): 为开发过程建立清晰的路线图,使其与总体业务目标保持一致
  • 优先级定义(Priority Definition): 确定需要立即关注的最关键任务和特征,确保资源有效分配
  • 范围定义(Scope Definition): 清楚概述项目边界和范围,以避免范围蔓延并确保集中执行
  • 目标定义(Goals Definition): 设定具体、可衡量的目标,指导团队朝着成功的结果努力


如果在软件生产系统中可以定义一个关键限制因素,那么每一个单元都可以用于评估并改进其水平。详尽的 MAMOS 单元列表可用于质量工程转型。

产出和成果(Outputs and Outcomes)

努力和结果之间的联系在质量工程中至关重要,通过将输出与结果联系起来,从而付诸行动。这两个要素是验证整个过程有效性的关键系统输出。


测量构建块中的两个关键元素是:


  1. 产出(Outputs) 包括实际的生产结果
  2. 成果(Outcomes) 是从产出中产生的更定性的有价值的点


这两个要素能让我们全面评估行为的影响。可以考虑使用加速指标,例如在行业中广泛认可的四个关键指标,整个团队更容易了解这些指标。


此外,成果与最初确定的质量、速度痛点直接相关。这种战略一致性不仅简化了质量工程所做的努力,而且还确保所取得的成果与组织的总体目标和期望一致。

面向质量工程的 MAMOS 框架

MAMOS 框架提供了一种结构化方法利用质量工程的构建块来驱动软件生产系统专注于面向价值的转型,其依赖于核心原则和 AAA 3 步迭代过程。

MAMOS 的 AAA 3 步迭代过程

MAMOS 的 3 步流程以 AAA(Assess-Architect-Accelerate,即评估、架构和加速)为中心,作为指导迭代框架,封装了包含综合评估、战略设计和转型加速的系统方法。



AAA 流程概述包括 3 个步骤:


  1. 评估(Assess) 质量和速度问题
  2. 为系统问题架构(Architect) MAMOS 解决方案
  3. 加速(Accelerate) 提供产出和成果。
评估(Assess)

评估阶段包括对质量和速度问题的深入评估,以确定软件生产过程中的瓶颈、低效和痛点,需要对当前状态进行彻底分析,以发现潜在挑战。

架构(Architect)

架构阶段利用 MAMOS 框架制定整体解决方案,以处理在评估阶段确定的系统问题。通过端到端体系架构,在方法、架构、管理、组织和技能五个领域应用于软件生产系统。

加速(Accelerate)

加速阶段将解决方案转化为切实成果,实现在架构阶段确定的策略和活动,交付与业务目标一致的可测量的输出和结果,并开发快速质量能力。

MAMOS 框架原则

有效的转型是基于对环境的良好理解、强有力的决策和系统化的集中行动,这些行动维持了最初对变化的冲动,并使系统元素保持一致,避免回到惯性状态。


质量工程转型需要遵循以下关键原则:


  • 退一步看大局,让利益相关者参与进来,并采取其他行动来更好的理解系统
  • 强调完整性,以正确组织关键领域的诊断和行动,而不要迷失在细节中
  • 专注于限制因素,优先考虑那些对改善结果有更多杠杆作用的努力
  • 时间盒交付,保持集中行动,避免增加浪费,并迫使寻找有价值的增量步骤
  • 将产出与成果联系起来,以确保努力提供预期价值,并保持当前重点的相关性

在组织中实施质量工程

实施质量工程需要系统和战略性的方法来组织转型,从而获得足够的初始支持,并发展指导联盟,从一开始就能够交付价值,以建立可持续的快速质量能力。

质量工程转型模型

质量工程转型取决于这 5 个活动:


  • 将软件痛点与业务影响联系(Link) 起来
  • 创造(Create) 认知并获得支持
  • 理解(Understand) 关键问题和痛点
  • 共同架构(Co-architect) 质量工程解决方案
  • 推动(Drive) 精益转型
将软件痛点与业务影响联系起来

这一过程的第一个关键步骤是在组织面临的与软件相关的挑战与其总体业务优先级之间建立牢固的联系。这种一致性为将质量工程定位为价值和竞争优势的强大驱动力奠定了基础。

创造认知并获得支持

要成功引入质量工程,建立认知并获得利益相关者的支持是关键。这包括沟通质量工程的价值主张,说明如何处理痛点,优化过程,并有助于实现战略业务目标。

理解关键问题和痛点

深入了解组织的关键问题和痛点至关重要,包括全面分析和评估以确定瓶颈、低效和需要改进的领域。通过确定这些痛点,可以调整质量工程计划并解决问题。

共同架构质量工程解决方案

协作是质量工程的核心。共同架构解决方案的过程涉及到跨职能团队合作,来自不同领域的专家聚集在一起设计策略、过程和框架,这些策略、过程和框架在保持速度和效率的同时提高了软件产品的质量。

推动精益转型

质量工程不仅仅是实施新流程,而是一个影响整个组织的整体转型。领导者需要在推动这一转变中发挥至关重要的作用,包括培养质量文化,促进技能开发,并支持跨团队采用新的实践。

利用 MAMOS 蓝图

跨越不同地点和时间框架的公司所面临的挑战往往有共同点。虽然情况可能有所不同,但问题和解决方案模式可以用来产生有影响的结果。


MAMOS 蓝图是跨越 MAMOS 的五个领域的整体软件生产系统,覆盖了常见用例,可以用来了解特定用例是如何工作的,然后用它来更快执行差距分析或定义转型行动计划。


MAMOS 单元完整示例


MAMOS 蓝图用例范围可以适应不同的增长阶段,如 A、B、C、D、E 轮融资,或迎合特定的运营模式,如初创企业、扩大规模、缩小规模、扩大范围和全球可扩展性。社区正在构建像 FinOps 这样的具体实践模型。

质量工程或者试错

质量工程代表了行业对转型的需求,以有效支持业务不断革新。


每个组织的未来都依赖于其支持快速开发高质量产品的能力,以有效构建数字业务的最有价值资产,即软件生产系统。


要使这一切成为现实,就需要在组织边界上有效领导大局,在最重要的优先事项上引导努力和资源。


无论你是主管、总监、工程、质量或技术的 C 级主管,都可以选择通过拥抱"构建更好,构建更快"的质量工程哲学来开始产生影响。




你好,我是俞凡,在 Motorola 做过研发,现在在 Mavenir 做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI 等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。为了方便大家以后能第一时间看到文章,请朋友们关注公众号"DeepNoMind",并设个星标吧,如果能一键三连(转发、点赞、在看),则能给我带来更多的支持和动力,激励我持续写下去,和大家共同成长进步!

目录
相关文章
|
6月前
|
开发框架 架构师 Devops
什么是质量工程?(上)
什么是质量工程?
135 0
|
4月前
流式系统:第九章到第十章
流式系统:第九章到第十章
19 0
|
4月前
|
Python
单词 Workshop 的含义和使用场合介绍
单词 Workshop 的含义和使用场合介绍
49 0
|
6月前
|
机器学习/深度学习 存储 人工智能
【网安AIGC专题11.8】论文15 ChatGPT在软件工程中的全面作用:程序语法(AST生成、表达式匹配) 静态行为、动态分析(数据依赖和污点分析、指针分析) 提示设计(角色提示、指令提示)
【网安AIGC专题11.8】论文15 ChatGPT在软件工程中的全面作用:程序语法(AST生成、表达式匹配) 静态行为、动态分析(数据依赖和污点分析、指针分析) 提示设计(角色提示、指令提示)
75 0
|
自然语言处理 C语言 C++
编译原理 实验二:词法分析器的手动实现(基于状态机的词法分析器)
编译原理 实验二:词法分析器的手动实现(基于状态机的词法分析器)
753 0
编译原理 实验二:词法分析器的手动实现(基于状态机的词法分析器)
|
Dubbo NoSQL Java
架构:第八章:查询的资料
架构:第八章:查询的资料
|
自然语言处理 PyTorch 算法框架/工具
离线解耦的文本表征方法(持续更新ing...)
本文仅介绍离线、解耦的、直接对文本进行表征的方法。分成通过词嵌入池化得到句子嵌入,和直接进行句子嵌入两种做法。主要用PyTorch实现。 本文将使用一个数据集来撰写相应代码,并使用简单的线性分类器来实现multi-class文本分类,分类模型的代码(我每个都是跟前面的文本表征部分直接写在同一个脚本里的)和各表征方法的效果在第4节展示。 本文使用的分词方式是jieba默认模式。其他注意事项看具体各分节内容。
离线解耦的文本表征方法(持续更新ing...)
|
Python
408.有效单词缩写 Python指针思路分析与细节解析!
408.有效单词缩写 Python指针思路分析与细节解析!
125 0
|
存储 Java
你能用几句话解释面向对象?(中)
一种基于面向过程的新的编程思想,顾名思义该思想是站在对象的角度思考问题,我们把多个功能合理的放到不同对象里,强调的是我该让谁来。面向对象最小的程序单元是类,必须先存在类的定义,再有对象,而具备某种功能的实体,称为对象。
你能用几句话解释面向对象?(中)
|
XML Java 数据格式
你能用几句话解释面向对象?(下)
一种基于面向过程的新的编程思想,顾名思义该思想是站在对象的角度思考问题,我们把多个功能合理的放到不同对象里,强调的是我该让谁来。面向对象最小的程序单元是类,必须先存在类的定义,再有对象,而具备某种功能的实体,称为对象。
112 0
你能用几句话解释面向对象?(下)