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 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【人工智能革命】:AIGC时代的到来 | 探索AI生成内容的未来

🎥 屿小夏 : 个人主页 🔥个人专栏 : IT杂谈 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. AIGC 技术的概述和发展趋势1.1 AIGC 技术的概述1.2 AIGC 技术的发展趋势 二. AIGC 与元宇…

养娃难可求助亲戚的UML建模-UMLChina建模知识竞赛第4赛季第26轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先答对前3题,即可获得本轮优胜。第4题为附加题,对错不影响优胜者…

指针运算笔试题解析

题目一 #include <stdio.h>int main(){int a[5] { 1, 2, 3, 4, 5 };int *ptr (int *)(&a 1);printf( "%d,%d", *(a 1), *(ptr - 1));return 0;}// 程序的结果是什么&#xff1f; 答案中显示第一个是2&#xff0c;第二个是5 咱们先来解释一下第一个答…

【Linux】信号--信号的捕捉/可重入函数/volatile/SIGCHLD信号

文章目录 一、信号的捕捉1.用户态和内核态2.内核如何实现信号的捕捉3.sigaction 二、可重入函数三、volatile四、SIGCHLD信号 一、信号的捕捉 1.用户态和内核态 用户态的的时候&#xff0c;进行以下操作&#xff1a;1.操作系统自身的资源(getpid,waitpid…)2.硬件资源(printf…

YOLOv5改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)

一、本文介绍 本文给大家带来的CARAFE&#xff08;Content-Aware ReAssembly of FEatures&#xff09;是一种用于增强卷积神经网络特征图的上采样方法。其主要旨在改进传统的上采样方法&#xff08;就是我们的Upsample&#xff09;的性能。CARAFE的核心思想是&#xff1a;使用…

低代码优缺点的那些事

什么是低代码 低代码是一种软件开发方法,旨在通过使用可视化工具和组件库来简化应用程序开发。低代码平台提供了一种快速开发应用程序的方式,无需编写大量的代码。开发人员可以使用拖放界面和预构建组件来构建应用程序,从而加快开发速度和降低开发成本。低代码平台通常也提…

【LeetCode刷题笔记】155.最小栈

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法知识专栏&#xff1a;算法分析&#x1f525; 给大家跳段街舞感谢…

震惊,PDF文件转换已不再不是问题?

你是否曾经因为PDF文件的格式问题而感到困扰&#xff1f;是否曾经因为无法快速转换PDF文件而感到烦恼&#xff1f; 现在&#xff0c;这些问题都可以迎刃而解了&#xff01;下面这个在线PDF转换网站&#xff0c;就是你的解决方案。 目前5M以下文件免费转换&#xff0c;赶紧来看…

linux笔记--VSCode利用交换机跳转服务器

目录 1--前言 2--VSCode设置 3--ssh连接 1--前言 博主学校的服务器有两个&#xff0c;其中一个服务器&#xff08;14&#xff09;可以通过挂内网VPN来进行连接&#xff0c;但另一个服务器&#xff08;15&#xff09;即使挂了VPN也不能连接&#xff0c;只能通过内网进行连接。…

【机器学习】应用KNN实现鸢尾花种类预测

目录 前言 一、K最近邻&#xff08;KNN&#xff09;介绍 二、鸢尾花数据集介绍 三、鸢尾花数据集可视化 四、鸢尾花数据分析 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Fil…

MySQL 系列:注意 ORDER 和 LIMIT 联合使用的陷阱

文章目录 前言背后的原因ORDER BY 排序列存在相同值时返回顺序是不固定的LIMIT 和 ORDER BY 联合使用时的行为ORDER BY 或 GROUP BY 和 LIMIT 联合使用优化器默认使用有序索引 如何解决其它说明个人简介 前言 不知道大家在在分页查询中有没有遇到过这个问题&#xff0c;分页查…

三、JS逆向

一、JS逆向 解释&#xff1a;在我们爬虫的过程中经常会遇到参数被加密的情况&#xff0c;这样只有先在前端搞清楚加密参数是怎么生成的才能继续我们的爬虫&#xff0c;而且此时我们还需要用python去执行这个加密的过程。本文主要讲怎么在浏览器调试JS&#xff0c;以及Python执…

【数据结构和算法】--队列的特殊结构-循环队列

目录 循环队列的结构循环队列的实现循环队列的创建循环队列为空判断循环队列为满判断入队出队返回循环队列首元素返回循环队列尾元素释放循环队列 循环队列的结构 循环队列是队列的一种特殊结构&#xff0c;它的长度是固定的k&#xff0c;同样是先进先出&#xff0c;理论结构是…

PHP是世界上最好的语言-PolarDN XXF无参数RCE QUERY_STRING 特性

这个靶场我之前看到过打广告&#xff0c;而且感觉比较新 来坐坐 <?php //flag in $flag highlight_file(__FILE__); include("flag.php"); $c$_POST[sys]; $key1 0; $key2 0; if(isset($_GET[flag1]) || isset($_GET[flag2]) || isset($_POST[flag1]) || isset…

作者推荐 |【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(方案分析篇)

全方面带你透彻探索服务优化技术方案 前提背景影响一个系统性能的方方面面代码优化数据库优化网络优化硬件优化 常用的性能评价/测试指标响应时间并发数吞吐量响应时间、并发数和吞吐量之间的关系运作流程关系 性能优化方案的建议避免过早优化进行系统性能测试寻找系统瓶颈&…

Vue2将在2023年12月31日结束支持

文章目录 一、前言二、2023.12.31 会发生什么&#xff1f;三、接下来呢&#xff1f;四、仍然使用 Vue 2&#xff1f;你应该这样做4.1、升级到 Vue 2 的最终版本4.2、购买 Vue 2 的扩展支持4.3、通知用户 Vue 2 EOL 后的计划 五、展望未来六、最后 一、前言 随着 2024 年的临近…

【漏洞复现】捷诚管理信息系统 SQL注入漏洞

漏洞描述 捷诚管理信息系统是一款功能全面,可以支持自营、联营到外柜租赁的管理,其自身带工作流管理工具,能够帮助企业有效的开展内部审批工作。 该系统CWSFinanceCommon.asmx接口存在SQL注入漏洞。未经身份认证的攻击者可以通过该漏洞获取数据库敏感信息,深入利用可获取…

【5G PHY】5G小区类型、小区组和小区节点的概念介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

谷歌浏览器标签页显示内存使用率

Chrome 桌面浏览器的新更新现在可让您查看每个标签页占用了多少内存&#xff0c;这可以帮助您确定哪些标签页占用了多少内存&#xff0c;网站正在减慢您笔记本电脑的速度。 今年早些时候在 Google Chrome 中引入内存节省程序之后&#xff0c;Google 又发布了一项功能&#xff…

【LeetCode刷题-树】--173.二叉搜索树迭代器

173.二叉搜索树迭代器 本题就是实现二叉树的中序遍历&#xff0c;利用数组本身实现迭代器 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.va…