针对团队中存在的问题,构造 MAMOS 蓝图,从而以系统化的方式识别并解决问题。本文将针对减少等待时间这一问题举例说明 MAMOS 蓝图的组成和使用方式。原文: MAMOS Blueprint: Build your own for Quality at Speed
很难完全摆脱等待时间。
我认为没有必要争论延迟成本(cost of delay)、团队受挫成本(team frustration)、闲置成本(idle costs)和返工成本(late rework)对业务的影响,问题的关键在于如何减少这些成本。
由于软件生产系统中的多重因果关系,造成等待时间的原因相当复杂: 副总裁想要更多功能,经理不会拒绝,鼓励做越来越多的工作,团队有不同的优先级和工作方式,等等。由于等待时间太长,组织甚至可能在流水线上增加更多工作,从而使问题变得更糟。
通过建立敏捷流程和精益过程来帮助解决的同时,仍然需要将管理和组织联系在一起,形成"人员、流程和技术"的闭环,才能协调一致的减少等待时间。
本文将分享如何通过使用 MAMOS 构建软件生产系统以获得可持续的质量和快速发布能力,从而明确减少等待时间。
浮于表面的方法远远不够
我们已经看到、听到过许多尝试消除等待时间的失败案例,涉及各种背景或行业。而在现实生活中,如果无法解决制度问题,也会在政治和生态方面面对同样的问题。
例如,管理层在全员大会上把某项任务作为关键优先事项,却在没有考虑已经开始的工作的情况下,悄悄改变了新的优先事项。另一家公司聘请了顾问,开始敏捷转型,但由于缺乏内部责任和流程变革而失败了。
他们的共同点就是浮于表面。
图 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 蓝图
软件生产的系统方法基于 MAMOS,即质量工程框架(Quality Engineering Framework),围绕方法(Methods)、体系架构(Architecture)、管理(Management)、组织(Organization)和技能(Skills)这 5 个维度构建。
接下来我们将在一个完整的练习中执行现状分析,以了解系统是如何工作的,执行与蓝图之间的差距,并确定调整的优先级。为了使文章保持简短,我们在这里将重点放在蓝图上。
架构师对系统架构进行可持续变更
发展软件生产系统以满足特定客户在不同领域的需求,同时关注大局和我们想要达成的目的。
蓝图的构建基于:
- 结果(Outcome): 要达到的价值目标,在我们的例子中是减少等待时间,这将加速价值交付。
- 输出(Output): 有助于达成结果的活动的主要输出,在我们的案例中简化为"减少进行中的并行变更数量"。
- 元素(Element): 在 MAMOS 能力域内作为软件生产系统的一部分构建的单元。
然后将系统中的每个元素交互定义为"启用(enable)"、"强化(reinforce)"、"限制(limit)"和"反馈(feedback)"4 个主要交互。
图 3: 移除等待时间的 MAMOS 蓝图(非详尽的)
基于 MAMOS 的总体行动计划依赖于:
- 建立利益相关者治理会来限制在制品: 分配一个内部角色来管理项目组合、优先级、期望,以限制工作流水线的能力。
- 从看板开始实现"拉动式": 在缺乏成熟度和可预测性的情况下,Scrum 和其他方法的成本太高了。应该从小处着手,实现实时化。
- 让经理成为转型的推动者: 团队需要帮助来实现较小的增量,要能够说不,以共享的方式工作,并持续学习。
- 建立知识以消除瓶颈: 从有限工作流的连续交付流中了解等待时间的原因并解决。
作为软件生产系统的一部分,要构建的元素将能够维持学习实践,并在此过程中不断发展,构建比个人交付价值的总和更可靠、更有效的东西,这就是质量工程。
更多质量工程蓝图
质量工程的价值是通过使用 MAMOS 框架构建软件生产系统来实现快速、高质量软件交付。同样的蓝图模型也可以用来解决其他问题。
事实上,消除等待时间只是转型之旅的开始。在这方面的改进为解决其他结构性问题(如平台架构或团队规模)打开了大门,每个问题都需要一个系统才能成功。
你好,我是俞凡,在 Motorola 做过研发,现在在 Mavenir 做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI 等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。为了方便大家以后能第一时间看到文章,请朋友们关注公众号"DeepNoMind",并设个星标吧,如果能一键三连(转发、点赞、在看),则能给我带来更多的支持和动力,激励我持续写下去,和大家共同成长进步!