MAMOS蓝图: 打造自己的质量工程

针对团队中存在的问题,构造MAMOS蓝图,从而以系统化的方式识别并解决问题。本文将针对减少等待时间这一问题举例说明MAMOS蓝图的组成和使用方式。原文: MAMOS Blueprint: Build your own for Quality at Speed

alt

很难完全摆脱等待时间。

我认为没有必要争论延迟成本(cost of delay)、团队受挫成本(team frustration)、闲置成本(idle costs)和返工成本(late rework)对业务的影响,问题的关键在于如何减少这些成本。

由于软件生产系统中的多重因果关系,造成等待时间的原因相当复杂: 副总裁想要更多功能,经理不会拒绝,鼓励做越来越多的工作,团队有不同的优先级和工作方式,等等。由于等待时间太长,组织甚至可能在流水线上增加更多工作,从而使问题变得更糟。

通过建立敏捷流程和精益过程来帮助解决的同时,仍然需要将管理和组织联系在一起,形成"人员、流程和技术"的闭环,才能协调一致的减少等待时间。

本文将分享如何通过使用MAMOS构建软件生产系统以获得可持续的质量和快速发布能力,从而明确减少等待时间。

浮于表面的方法远远不够

我们已经看到、听到过许多尝试消除等待时间的失败案例,涉及各种背景或行业。而在现实生活中,如果无法解决制度问题,也会在政治和生态方面面对同样的问题。

例如,管理层在全员大会上把某项任务作为关键优先事项,却在没有考虑已经开始的工作的情况下,悄悄改变了新的优先事项。另一家公司聘请了顾问,开始敏捷转型,但由于缺乏内部责任和流程变革而失败了。

他们的共同点就是浮于表面。

图1: 浮于表面的解决方案,thinkk.org
图1: 浮于表面的解决方案,thinkk.org

表面变化很有吸引力,可以在短时间内展示一些结果,在持续面临交付压力时是有用的输出。但问题在于,这是浪费资源,因为问题会以不同形式出现,而浮于表面的解决方案解决不了根本原因。

软件生产系统中的可持续变化需要系统方法(system approach) 来创建良好的架构和积极增强的系统,以实现我们的目标。只有这种方法才能建立真正的能力,并持续产生影响。

拥抱MAMOS可持续方法

减少等待时间的可持续方法需要将核心原则与软件生产系统中的具体活动和操作结合起来。

范式转变需要关键利益相关者在以下方面达成一致:

  • 精益原则(Lean principles): "少即是多(Less is more)"、"慢即是快(Slow is fast)"、"限制在制品(Limit WIP)"是与乐于改变的利益相关者分享的核心原则。
  • 拉动而非推动(Pull instead of push): 从头到尾做一件事,只有在可以的时候才开始做新的事情,而不是在别人要求的时候。
  • 从小处着手(Start small): 范围越大,风险越大。拥有真正的全球视野,但选择一个明确边界来迭代和快速交付价值。

现在可以开始讨论用MAMOS构建什么了:

图2: 带有输出(黄色)和目标(黑色)的MAMOS蓝图
图2: 带有输出(黄色)和目标(黑色)的MAMOS蓝图

软件生产的系统方法基于MAMOS,即质量工程框架(Quality Engineering Framework),围绕方法(Methods)、体系架构(Architecture)、管理(Management)、组织(Organization)和技能(Skills)这5个维度构建。

接下来我们将在一个完整的练习中执行现状分析,以了解系统是如何工作的,执行与蓝图之间的差距,并确定调整的优先级。为了使文章保持简短,我们在这里将重点放在蓝图上。

架构师对系统架构进行可持续变更

发展软件生产系统以满足特定客户在不同领域的需求,同时关注大局和我们想要达成的目的。

蓝图的构建基于:

  1. 结果(Outcome): 要达到的价值目标,在我们的例子中是减少等待时间,这将加速价值交付。
  2. 输出(Output): 有助于达成结果的活动的主要输出,在我们的案例中简化为"减少进行中的并行变更数量"。
  3. 元素(Element): 在MAMOS能力域内作为软件生产系统的一部分构建的单元。

然后将系统中的每个元素交互定义为"启用(enable)"、"强化(reinforce)"、"限制(limit)"和"反馈(feedback)"4个主要交互。

图3: 移除等待时间的MAMOS蓝图(非详尽的)
图3: 移除等待时间的MAMOS蓝图(非详尽的)

基于MAMOS的总体行动计划依赖于:

  • 建立利益相关者治理会来限制在制品: 分配一个内部角色来管理项目组合、优先级、期望,以限制工作流水线的能力。
  • 从看板开始实现"拉动式": 在缺乏成熟度和可预测性的情况下,Scrum和其他方法的成本太高了。应该从小处着手,实现实时化。
  • 让经理成为转型的推动者: 团队需要帮助来实现较小的增量,要能够说不,以共享的方式工作,并持续学习。
  • 建立知识以消除瓶颈: 从有限工作流的连续交付流中了解等待时间的原因并解决。

作为软件生产系统的一部分,要构建的元素将能够维持学习实践,并在此过程中不断发展,构建比个人交付价值的总和更可靠、更有效的东西,这就是质量工程。

更多质量工程蓝图

质量工程的价值是通过使用MAMOS框架构建软件生产系统来实现快速、高质量软件交付。同样的蓝图模型也可以用来解决其他问题。

事实上,消除等待时间只是转型之旅的开始。在这方面的改进为解决其他结构性问题(如平台架构或团队规模)打开了大门,每个问题都需要一个系统才能成功。

alt

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

- END -

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/227839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue脚手架安装及使用

准备工作 安装node安装cnpm cnpm是npm的“廉价平替” 提高安装速度 npm install -g cnpm --registryhttps://registry.npm.taobao.org 安装脚手架 安装Vue脚手架 cnpm install -g vue/cli 用vue脚手架创建vue项目 找好创建项目的位置 创建项目 vue create test (test为项…

用代码写uml并在线生成uml图

可以用PlantUml写uml,并在线生成uml图。 startuml start:登录系统; if (用户名和密码正确?) then (yes):进入系统首页;:展示主菜单; else (no):显示登录错误;stop endif:选择模块; partition "课程信息" {:查看课程列表;:查看课程详情; } partition "课程签到…

【计算机视觉】SIFT

在边缘提取的时候,用高斯一阶导对信号进行卷积,响应值最大的就是边界如果用高斯二阶导对信号进行卷积,0点就是边界点(二阶导等于0的点,对应一阶导的极值点) 如果用高斯二阶导在不同的信号上进行卷积&#x…

python requests.Session()的使用

cookies and jar 你可以把Session理解成为它内部提供了一系列方法,用来存储状态。这里所说的状态,其实大部分情况下指的就是cookies。 比如使用浏览器时候,你在一个标签页内登陆了,另一个标签页其实就可以读取cookies了&#xf…

口袋参谋:新品上架,如何获取更多免费流量?

​新品上架 如何获得更多的免费流量? 我相信 这是99.999%的商家,都关心的问题! 今天我就来和大家好好说道说道。 01 流量的组成 新品本身是没有权重的,买家搜不到我们。 如果想要获得更多的免费流量,我们就要知道…

基础算法(1):排序(1):选择排序

今天对算法产生了兴趣,开始学习基础算法,比如排序,模拟,贪心,递推等内容,算法是很重要的,它是解决某个问题的特定方法,程序数据结构算法,所以对算法的学习是至关重要的&a…

出现 Error:Unable to access jarfile xxxx\target\nacos-server.jar 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 执行Nacos中的startup.cmd的时候出现闪退,于是在该脚本的最后一行添加pause,查看因为什么原因闪退 出现的bug如下所示:Error:Unable to access jarfile xxxx\target\nacos-server.jar 截图如下所示: 查看内部文件夹,…

塑料检查井配套开发了注塑成型的井盖、井筒、井座

塑料检查井配套开发的注塑成型井盖、井筒、井座——城市基础设施的新选择 随着城市化进程的加快,城市基础设施建设的品质与效率日益受到重视。在这个背景下,塑料检查井及其配套开发的注塑成型井盖、井筒、井座以其独特的优势,正在逐渐取代传…

k8s debug 浅谈

一 k8s debug 浅谈 说明: 本文只是基于对kubectl debug浅显认识总结的知识点,后续实际使用再补充案例 Kubernetes 官方出品调试工具上手指南(无需安装,开箱即用) debug-application 简化 Pod 故障诊断: kubectl-debug 介绍 1.18 版本之前需要自己…

DevEco Studio自定义代码颜色

这里以ArkTS代码颜色举例 进入设置(快捷键CtrlAltS) 选择Editor > Color Scheme > JavaScript 由于之前用习惯VsCode了,这里以注释颜色举例,变为绿色。 上面说的不是以ArkTS代码颜色举例吗?为什么选择JavaScr…

054:vue工具 --- BASE64加密解密互相转换

第054个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

探索泰勒级数在机器学习中的作用:从函数逼近到模型优化

一、介绍 泰勒级数是数学中的一个基本概念,在机器学习领域有着重要的应用。本文将探讨泰勒级数的基础知识、它在机器学习中的相关性以及一些具体应用。 揭开复杂性:利用泰勒级数增强机器学习应用的理解和效率。 二、理解泰勒级数 在数学中,泰…

物联网AI 物联网平台学习之概述

学物联网,来万物简单IoT物联网!! 万物简单IOT是一个集物联网教育、企业SaaS私有化部署的物联网服务平台,它集成了设备管理、数据安全通信、消息订阅、规则引擎等一系列物联网核心能力,支持设备数据上云以及海量设备数…

大 O 表示法在机器学习中的重要性

一、介绍 在不断发展的机器学习领域,算法的效率至关重要。大 O 表示法成为这方面的一个关键工具,它提供了一种描述算法性能或复杂性的语言,特别是在时间和空间方面。本文探讨了 Big O 表示法在机器学习中的重要性,阐明了它在算法选…

Linux开发工具--vim

Linux开发工具--vim 一、vim的基本概念二、常见命令三、简单配置vim配置文件的位置常用配置选项,用来测试使用插件 一、vim的基本概念 vim编辑器,只负责写代码,vim是一款多模式的编辑器 vim的三种模式(其实有好多模式,目前掌握这…

服务器数据恢复—raid5热备盘未激活崩溃导致上层oracle数据丢失的数据恢复案例

服务器数据恢复环境: 某品牌X系列服务器,4块SAS硬盘组建了一组RAID5阵列,还有1块磁盘作为热备盘使用。服务器上层安装的linux操作系统,操作系统上部署了一个基于oracle数据库的OA(oracle已经不再为该OA系统提供后续服务…

PyCharm控制台异常堆栈乱码问题解决

目录 1、问题描述2、问题原因3、问题解决 1、问题描述 PyCharm环境都已经配置成了UTF-8编码,控制台打印中文也不会出现乱码,但异常堆栈信息中如果有中文会出现中文乱码: 这种该怎么解决呢? 2、问题原因 未将PyCharm编码环境与项目…

RocketMQ源码 Broker-SubscriptionGroupManager 订阅组管理组件源码分析

前言 SubscriptionGroupManager 继承了ConfigManager配置管理组件,拥有将内存数据持久化到磁盘文件subscriptionGroup.json的能力。它主要负责维护所有消费组在内存中的订阅数据。 源码版本:4.9.3 源码架构图 核心数据结构 主要的数据结构比较简单&am…

【PostgreSQL】从零开始:(二)PostgreSQL下载与安装

【PostgreSQL】从零开始:(二)PostgreSQL下载与安装 Winodws环境下载与安装PostgreSQL下载PostgreSQL安装PostgreSQL1.登录数据库2.查看下我们已有的数据库 Liunx环境下载与安装PostgreSQL使用YUM下载安装PostgreSQL1.下载PostgreSQL安装包2.安装PostgreS…

【漏洞复现】CVE-2023-47261 Dokmee ECM信息泄露致远程命令执行

漏洞描述 Dokmee ECM是一款国外企业内容管理 (ECM) 软件。每个公司的办公室每个角落都存放着文档、记录和档案。Dokmee 一系列解决方案可以帮助您高效地组织、保护和管理这些文件。支持的文件:PDF、TIFF、Word、Excel、Auto-CAD 绘图、电子邮件等。Dokmee 可以帮助您立即实现…