心理学
关于值班的心智模型
概要:
值班是软件系统运维中不可避免的一环,但人们对其看法不一。要理解值班,首先要明确它在软件工作范围中的位置:响应时间短,可由个人或小组解决。值班的目标是实现个人成长与组织效能的平衡。理想情况下,开发者也参与值班,但需要减少组织摩擦,提供学习时间,才能实现快速迭代和增长。领导支持对此至关重要。理解彼此的心智模型也很关键,才能就值班达成共识并取得进步。我们应该反思自己对值班的看法,并与他人交流,形成统一的理解。
我们头脑中的心智模型塑造了每一次讨论。理解参与对话的各方之间心智模型的一致性和差异,是进行有效沟通的重要一环。这在像值班这样由各种不同经历形成的强烈观点的话题中尤为相关。
本文暂不讨论值班提供的机会这个宏观话题,而是着眼于描述我用来思考值班以及不同参与角色的职责的两个关键心智模型。
什么是值班?
除了值班显然意味着在系统故障时负责修复之外,我发现从更广泛的角度来看值班在开发和运维一个软件系统所需工作中的位置,可以提供一个更有用的模型来理解它的涵义。
横轴是完成工作所需的时间跨度,从左侧的数月到右侧的数分钟。纵轴是直接参与完成工作单元的人数,从底部的单个人到顶部的整个公司。
值班占据的区域大致位于右下象限,左边界为数天,上边界为多个人。它需要紧急(数小时到数分钟)的响应,但问题范围一个或两个人就可以解决。
这种对值班的诠释展示了反应能力的关键性,也解释了为什么值班是不可避免的(无论你是否希望,这个象限中总会有无法避免的工作),以及为什么值班和事故响应需要不同的规划和准备(它们处理不同规模的事件和响应)。
谁应该值班?
在理想情况下,所有参与软件开发的人都会从值班提供的成长和发展机会中受益,但简单的“你开发的你运维”的回答还不够,因为要实现这种机会还需要一个有效的值班环境。
创建一个有效的值班环境需要平衡许多约束。一个关键指标,代表正在实现有效平衡的是存在增长,这来自通过迭代的学习。
迭代越快,增长机会越多。值班轮换的结构和人员安排在很大程度上决定完成每次学习迭代所需的预期投入或成本。
完成每次迭代学习预期所需的投入或成本
值班轮换的人员安排可以在这张图表上画成一个形状,反映参与者的位置以及他们的迭代能力。离开发团队的距离会因组织摩擦而降低迭代速度。缺少技能、有限的时间和利益冲突会限制个人参与迭代学习的能力。
目标是尽可能接近右上角,同时认识到右上角理想状况中存在持续推动偏离的力量,这限制了实际可以达到的目标。
考虑各种独特约束后,为任一特定情况提供最佳结果的值班轮换位置和形状都会有所不同。如何安排值班轮换并没有简单或普遍最优的答案。效果良好且充实的值班环境可以在右上象限的大部分区域找到。
这个模型有助于理解实现目标或从当前位置提升(无论那里在哪)所需的投入类型和水平。
领导支持至关重要
有效的值班环境需要致力的领导。这在看待减少组织摩擦时最明显。改变值班轮换的参与团队,或建立和解散与值班轮换相关的整个团队,需要重大的组织管理工作,不可能仅由个人推动。
在值班轮换内,个人和集体努力可以在没有正式领导支持的情况下推动迭代能力的渐进提升。但是,这些增量的规模和速度将受到限制。支持提供此项工作的时间和机会以及对增长和学习的整体支持的领导,将显著提高迭代能力提升的速度。
从高迭代成本降低到低迭代成本环境,最清楚地说明了对致力领导的需求,但一旦建立了有效的值班环境,这一需求并不会停止。需要持续的领导和承诺来维持环境,以抵抗不断推动偏离理想状态的力量。
有效的值班环境的框架
通过这些模型的视角思考值班的负面声誉,我得出的结论是,缺乏的是为希望在值班环境中向上或向右改进的领导和团队提供的实用改进指导。可以找到改善值班的个人实践和具体行动的建议,但没有全面或完整的框架。
当看到第一个模型的其他三个象限时,项目和计划管理、事故响应以及一般日常任务执行等成熟框架立即浮现,但在值班领域我还没有发现类似的东西。
在未来的几篇文章中,我计划利用这些模型描述一个值班框架,我发现它为团队增加了这种结构,并因此实现了值班的机遇。
为了从这场讨论中获得最大收益,我想挑战你思考一下你用什么心理模型来描述值班?它们与我上面描述的相似还是不同?
这里没有正确或错误的答案,但对我们每个人如何考虑值班有清晰的理解,是我们能够将不同经历和建议转化为相关和有用的具体行动的基础,这些具体行动适用于我们特定的情况。
本文译自 Matt Brown,由 BALI 编辑发布。