质量工程化,交付快速化

质量和速度之间权衡让人很难取舍,而通过推进质量工程,以系统化的方式识别和优化系统痛点,可以帮助团队构建既快又好的精益软件生产系统。原文: Quality Engineered, Speed Delivered

alt

所有人都想要更快的速度。

但需要解决复杂问题:

  • 权衡质量会让我们变慢
  • 质量实践在一开始会减缓速度
  • 仅靠方法或技术是不够的

从软件工程师到CIO/CTO的经历使我确信,可以构建基于MAMOS的精益软件生产系统,从而以可持续的速度交付软件。

质量和速度的痛点

这个复杂而不确定的世界要求企业能以极短的周期适应变化。

在软件驱动的组织中,业务速度直接依赖于快速变更软件的能力,使其成为生存的必要条件。

软件的痛点可以分为两类:

  1. 质量: 满意度、可用性、质量、可靠性等。
  2. 速度: 交付时间、迭代周期、确认或解决问题的时间。

目标是识别软件生产系统中最重要的质量和速度问题。不是所有问题都很重要,有些是原因,而有些是结果。

基于此,可以利用MAMOS软件生产系统架构来映射问题根源。

MAMOS: 质量工程背后的力量

作为软件工程师,我曾为自己无法控制问题而感到痛苦: 等待外部运维团队来"计划"变更,无法刷新数据,糟糕的规格说明。

当我转到项目管理时,我充满乐观,希望能有更多权力,但在管理和组织层面却面临着其他结构性问题。

有时我意识到把精力浪费在了错误的优先级上,例如,在质量实践上,这些实践在单独推动之后无法持续下去。

当我获得整个软件生产系统的自主权时,情况发生了变化。

我能够:

  • 将业务内部化,注入协作和自助服务的文化
  • 帮助业务人员获得业务分析的正确数据
  • 在职责范围内分享愿景和使命
  • 改变团队架构以创建平台和支持团队
  • 设置与全球转型目标一致的管理激励机制

这些行动使我们能够以可持续的速度加速软件交付,并意识到在整个价值链上注入质量可以更快获得有价值的回报。

MAMOS是基于方法(Methods)、架构(Architecture)、管理(Management)、组织(Organization)和技能(Skills) 这5个领域来组织软件生产系统的简化架构。

alt
制定行动计划

质量工程软件生产系统需要在更改任何内容之前对当前状态有很好的理解。

MAMOS帮助我们看清系统图景,构建正确视角,使我们能够识别最重要的质量和速度问题。

制定行动计划需要:

  1. 映射MAMOS系统的当前状态
  2. 确定质量和速度的痛点
  3. 根据MAMOS领域定义优先级
alt

步骤1提供了软件生产系统元素之间发生交互的可见性: 哪些方法用于计划或审查工作,架构风格如何影响迭代流程,正在推动哪些激励管理措施,组织设计如何影响团队架构和流程。

步骤2使我们能够对问题进行排序,以关注影响业务目标的限制因素。这个阶段是适应精益实践的阶段,比如影响映射、根因分析、价值流或流程。

步骤3整合执行计划,有效解决每个MAMOS区域识别的难点。例如,分散的团队组织需要对组织采取行动,而后期的返工问题则需要通过左移针对方法采取行动。在这个阶段,时间限制、增量步骤和关注价值的敏捷实践比较受欢迎。

通过执行扩大影响力

在处理软件生产系统时,很容易陷入消极的优化陷阱,将精力浪费在与业务结果无关的优先级上。

质量和速度的痛点必须与业务目标相联系,业务目标通过结果、KPI及其他指标有助于衡量转化是否成功。

成功的计划将支持企业快速适应不断变化的环境,并为快速交付的软件生产系统进行质量工程。

欢迎来到质量工程。

alt

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

- END -

本文由 mdnice 多平台发布

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

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

相关文章

小程序时代的机遇:开发成功的知识付费平台

知识付费平台不仅为知识创作者提供了广阔的变现渠道,同时也为用户提供了更为个性化、精准的学习体验。本篇文章,小编将为大家讲解知识付费小程序开发相关的知识。 一、小程序时代的背景 知识付费作为小程序领域中的“大热门”,有着非常高的…

整数在内存中的存储

整数和浮点数在内存中的存储方式是不一样的,今天,我们来具体学习一下 文章目录 整数在内存中的存储浮点数在内存中的存储 整数在内存中的存储 我们在之前就已经了解过了整数有原码,反码,补码的形式,这三种方式都是二进…

springboot 集成Dubbo2.7.8 ,连接zookeeper 提示错误 zookeeper not connected

Dubbo 连接zookeeper时&#xff0c;提示“zookeeper not connected” java.lang.IllegalStateException: zookeeper not connectedat org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient.<init>(CuratorZookeeperClient.java:83) ~[dubbo-2.7.8.jar:2.…

【每周一测】Java阶段四第二周学习

目录 1、在MyBatis中&#xff0c;当实体类中的属性名和表中的字段名不一样&#xff0c;除了&#xff08; &#xff09;都可以实现属性和数据的映射。 2、下列数组定义及赋值&#xff0c;错误的是&#xff08; &#xff09; 3、关于会话跟踪以下说法错误的&#xff08; &…

C++ Qt开发:Qt的安装与配置

Qt是一种C编程框架&#xff0c;用于构建图形用户界面&#xff08;GUI&#xff09;应用程序和嵌入式系统。Qt由Qt公司&#xff08;前身为Nokia&#xff09;开发&#xff0c;提供了一套跨平台的工具和类库&#xff0c;使开发者能够轻松地创建高效、美观、可扩展的应用程序。其被广…

多线程(进阶一:锁策略)

一、乐观锁和悲观锁 二、轻量级锁和重量级锁 三、自旋锁和挂起等待锁 四、普通互斥锁和读写锁 五、公平锁和非公平锁 六、可重入锁和不可重入锁 七、synchronized和Linux的mutex锁的简单比较 八、synchronized的自适应 一、乐观锁和悲观锁 乐观锁&#xff1a;在加锁之前…

启动游戏出现concrt140.dll错误的8种解决方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是找不到concrt140.dll文件。这个错误通常会导致程序无法正常运行&#xff0c;给用户带来困扰。本文将介绍找不到concrt140.dll无法继续执行代码的8个方法&#xff0c;同时探讨concrt140.dll丢…

【活动】内容运营活动,你做对了吗?

内容运营活动&#xff0c;首先应该确认本次活动的主题&#xff0c;明确目标受众&#xff0c;分析这类用户的使用场景&#xff0c;感兴趣的话题等&#xff0c;结合市场的热点&#xff0c;探讨活动的形式&#xff0c;过程节点&#xff0c;活动奖励等内容&#xff08;头脑风暴形式…

Unity打包到Webgl平台以及遇到的问题

Unity打包到Webgl平台以及遇到的问题 参考网站 Unity打包WebGL的全过程及在打包和使用过程中会遇到的问题(本地测试)-CSDN博客 unity打包到Webgl 并配置能正常运行 这里我用的是Unity2022.3.3f1c1版本 有两种方法 1、配置本地web服务 2、安装vsCode>添加插件LiveServe…

使用git出现的问题

保证 首先保证自己的git已经下载 其次保证自己的gitee账号已经安装并且已经生成ssh公钥 保证自己要push的代码在要上传的文件夹内并且配置文件等都在父文件夹&#xff08;也就是文件没有套着文件&#xff09; 问题 1 $ git push origin master gitgitee.com: Permission de…

laravel的ORM 对象关系映射

Laravel 中的 ORM&#xff08;Eloquent ORM&#xff09;是 Laravel 框架内置的一种对象关系映射系统&#xff0c;用于在 PHP 应用中与数据库进行交互。Eloquent 提供了一种优雅而直观的语法&#xff0c;使得开发者可以使用面向对象的方式进行数据库查询和操作。 定义模型&…

Git 请输入一个提交信息以解释此合并的必要性

操作方法&#xff1a;按住Ctrl加下面的某个字母

linux-man命令的使用及练习

目录 1. 命令概述 2. 使用 3. 练习 ?man services时报错&#xff1a;No manual entry for services的解决办法 4. man命令中常用按键以及用途 1. 命令概述 Linux提供了丰富的帮助手册&#xff0c;当你需要查看某个命令的参数时不必到处上网查找&#xff0c;只要man一下即…

PID控制参数整定(调节方法)原理+图示+MATLAB调试

PID控制参数整定&#xff08;调节方法&#xff09;原理图示MATLAB调试 Chapter1 PID控制参数整定&#xff08;调节方法&#xff09;原理图示MATLAB调试序一、P参数选取二、I的调节三、D的调节四、总结 Chapter2 PID参数调整&#xff0c;个人经验&#xff08;配输出曲线图&#…

多人聊天程序

服务端 import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{public static ServerSocket server_socket;public static ArrayList<Socket> socketListnew ArrayList<Socket>(); public static void main(String []args){try{…

触想嵌入式工业一体机在智能垃圾分类站的应用

1、行业发展背景 根据住建部给出的目标&#xff0c;到2025年前&#xff0c;全国地级及以上城市要基本建成垃圾分类处理系统。随着垃圾分类政策在全国强制落地&#xff0c;终端执行层面面临的最迫切问题是垃圾分类的准确性与社会参与意愿&#xff0c;而这两点与垃圾分类操作的简…

2004-2021年上市公司环境规制强度相关数据

2004-2021年上市公司环境规制强度相关数据 1、时间&#xff1a;2004-2021年 2、指标&#xff1a;年份、股票代码、股票简称、行业名称、行业代码、省份、城市、区县、行政区划代码、城市代码、区县代码、首次上市年份、上市状态、所属省份-工业增加值_亿元、所属省份-治理废气…

TCP一对一聊天

客户端 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io…

Leetcode 97. 交错字符串

class Solution {//用dp[i][j]表示s1的前i个字符和s2的前j个字符能否组成s3的前ij个字符public boolean isInterleave(String s1, String s2, String s3) {int n1 s1.length();int n2 s2.length();int n3 s3.length();if(n1 n2 ! n3){return false;}boolean[][] dp new bo…

智能优化算法应用:基于厨师算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于厨师算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于厨师算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.厨师算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…