译者 | 李睿
审校 | 重楼
提高开发人员的生产力是一个复杂的主题,并没有什么灵丹妙药。然而,经济压力、市场竞争加剧以及交付周期缩短等因素,迫使许多组织需要提高效率并开辟新的运营模式。在日益混合的工作场所中测量、维护并最终提高生产力是许多组织目前正在进行讨论的重要主题。
越来越多的组织开始研究如何更好地利用他们所拥有的资源,如何消除流程中的瓶颈,以及如何提高开发人员的生产力。经验证据和对生产力驱动因素的理解正在形成,与此同时,也揭穿了一些神话和误解。
SPACE框架是备受关注的方法之一。以下介绍它的背景,并解释了一些关键概念。此外,还提供了一些关于SPACE在组织中应用的示例。
SPACE框架简介
“开发人员生产力的SPACE”是由GitHub、维多利亚大学和微软公司研究人员合作编写的一个框架,由于其实用性和多方面的方法而备受关注。
研究人员揭穿了有关开发人员生产力一些常见的神话和误解,然后介绍了提高开发人员生产力的驱动因素。他们将这些驱动因素结构呈现出一个整体的多维模型。此外,他们还展示了一些生产力指标和计数器指标的例子。
为方便起见,本文对SPACE框架进行了总结,并就如何利用日益流行的工程智能启动SPACE跟踪和报告提供了一些帮助。
开发者生产力:神话和误解
SPACE框架的开发者在早期澄清了一些误解和神话:
- 一个明显的误解是(开发人员)生产力不是一个一维的指标。没有一个单一的数字可以定义生产力,任何过于简单的方法都无法提供深刻的见解。不仅如此,不同的组织和不同的团队可能需要关注不同的KPI集。
- 软件开发是一项团队运动。因此,单一指标的相关性较低。事实上,这可能会适得其反。重要的是整个团队或组织的表现。此外,绝对数字并不重要,但趋势和计数器信号的可观察性突出了需要解决的问题。
- 结果比产出更重要。虽然很难量化,但交付与客户相关的特性的能力显然比大量编写代码更重要。因此,单纯的活动指标不足以做出良好的生产力估计。
尽管如此,值得强调的是衡量的价值:
- 一套良好的衡量标准可以让人们了解组织的表现、发展趋势以及可以改进的领域。此外,关键指标不仅对管理有价值,而且如果使用得当,同时也会给开发人员带来发言权。
开发人员喜欢有证据来证明他们给团队和组织带来的价值。他们通常喜欢展示自己的价值,并喜欢改进流程和提升自己。而掌握这些证据有助于提高自我价值,进而提高组织的生产力。
SPACE框架解释
SPACE代表满意度(Satisfaction)、绩效(Performance)、活动(Activity)、沟通(Communication)和效率(Efficiency),体现了创作者提出的多维度方法。
SPACE的5个维度分别是:
(1)满意度和幸福感:这个维度衡量开发团队和成员对他们的工具、流程和工作环境的满意程度。例如,是否有合适的工具和资源来有效地执行任务?团队是否可以避免超负荷工作,或者团队成员是否会遭受潜在的倦怠?管理结构和环境是否支持增长和生产力?
(2)绩效:这与团队创造的实际结果以及创造这些结果的障碍的缺失有关。例如:客户对所提供功能的接受程度和满意度怎么样?随着时间的推移,团队是如何改进的?是如何提高整体质量的?绩效与组织和团队的绩效和满意度密切相关,有助于提高整体效率。
(3)活动:如上所述,结果比输出更可取,但活动或输出通常是很好的代理指标,仍然可以实现一些有用的指标,尤其是计数器指标。这可以是发布节奏、构建系统性能,或者要管理的事件的数量。简单地说,团队能完成任务吗?随着时间的推移,团队是如何改进的?
(4)沟通和协作:有效的协作和团队凝聚力已被证明是开发人员生产力的重要贡献因素。例如,头脑风暴、协作、目标一致、参与成果都能提高生产力。与这些情况相反的是,员工之间相互对抗,推卸责任,或者感到被组织管理层抛弃。
(5)效率和流程:产生有价值的结果是一回事,但这样做的效率有多高?一个关键的指标是有多少团队和成员可以在流程中执行他们的工作;他们能在多大程度上摆脱障碍、中断或延迟。“流程”是许多组织已经开始在流程或组织级别上关注的因素。这表现为组织的价值流指标或DORA指标。这些概念通常用于与执行团队甚至组织董事会进行沟通。
组织维度
最后,SPACE框架区分了在哪些地方采取和应用生产力措施,这些措施是:
- 成员:帮助团队成员感觉更有生产力是很重要的,但这通常是通过设置正确的流程、组织和团队环境来实现的。以上所述,微观管理成员并不会产生最好的影响,而且往往不会产生预期的结果。
- 团队:优秀的团队是优秀组织的核心。为团队设置正确的环境、场景和反馈循环已被证明可以显著提高生产力。
- 系统:改进流程、系统和组织指标有助于提高组织的效率,并更快地向客户交付更好的结果。这些都是有助于推动全面提高绩效的高级指标。
本文总结了SPACE框架的关键维度,接下来提供一些通过验证可以增强经验的例子。这些例子很容易衡量。
SPACE框架:示例指标
满意度
对于满意度和幸福感,有许多方法可以衡量组织内部的情况。这些可以是明确的指标,例如:
- 正式或半正式调查的净推荐值(NPS)结果。
- 对调查电子邮件、票证支持案例或内部门户功能快速回复表情符号:工程师和工程经理的保留率。
然而,这些指标需要专门的工作和资源来实现、维护和分析/报告。虽然这在一些组织中是可行的,但这通常不是转向SPACE过程的第一步。
代理指标已被证明是有用的,等同于一定程度的满意度,或者相反,是令人沮丧的指标。例如:
- 持续交付(CI)构建失败率和恢复时间:等待和不确定的潜在痛苦。
- 代码审查周期和审查延迟:场景切换的痛苦。
- 错误数量和问题修复时间:客户不满的痛苦。
虽然代理指标不适合更个性化的情绪分析或围绕组织和管理问题的情绪,但它们可以突出显示沮丧和不满的常见诱因。此外,代理指标通常是一个简单的起点,因为它们是挖掘现有数据的问题,不需要引入新的工作流或额外的潜在分发任务。
绩效
SPACE框架的开发者强调了一些围绕代码审查和相关活动的绩效代理指标。这包括:
- 代码审查速度/接受率:团队交付结果的速度/一致性有多快?
- 项目交付(史诗/功能/故事点):完成了多少?
- 基础设施/产品/构建系统的可靠性:是否存在阻碍执行的基础设施瓶颈?
同样,虽然这并不一定能给出一个完整的画面,但上述所有指标都提供了衡量整体绩效的有用信号。
活动
绩效衡量的是结果,而活动更关注的是产出。这些指标通常很容易获得,例如:
- 完成代码审查的数量
- 完成的绩效数量
- 已经完成的问题/故事点的数量
- 用于开发活动的时间
- 部署频率
活动项目是那些经常可以从工程工具和基础设施中的数据中访问的项目。当不断地自动提取这些指标以减少任何摩擦和开发人员开销时,这些指标尤其有用,同时将其聚合到团队或组织级别以进行监控和趋势分析。
沟通/协作
这类指标的解释更加开放,在引入任何代理指标时需要小心虽然可以检测到负面信号,但反过来就更难了。高度协作的团队往往不能仅仅由数字来决定,它需要良好的个人管理技能。尽管如此,一些已被证明是有益的代理指标是:
- 代码评审分数/评审人员数量/评审周期数量:评审是否分布良好,每个绩效是否包括几个活跃的人员,并且比“LGTM”评论更多?数字是否反映了一种合作意识,而不是像在同一个人之间的长时间审查周期中那样明显地推卸责任?
- 绩效周期:团队的效率和合作是否良好,或者是否存在明显的阻碍阶段?
- 知识/回顾图表:是否存在更广泛的协作网络,还是存在知识孤岛?
效率和流程
围绕开发人员生产力的一个关键类别是工程师所处的“流程”,以及支持基础设施和团队流程所支持的流程。可以测量正信号和反信号,例如:
- 绩效速度和趋势
- 开发周期时间
- 构建时间和可靠性
- 代码审查中的阻碍和延迟
- 待办事项的老化和票据状态的变化
- 测量流量、效率以及阻碍因素是可以通过硬数据很好地近似的事物。
在Logilica中SPACE报告的快照示例
总结
总的来说,SPACE框架为开发人员的生产力引入了一种多方面的方法。既要关注生产力的一些关键维度,也要关注个人、团队和整个组织。
SPACE维度的指标可以是直接衡量,也可以是通过代理数据间接的衡量。最棒的是,许多数据点已经以某种形式存在于组织中,并且可以进行数据挖掘。例如,这可以由内部生产力工程团队或在日益流行的软件工程智能(SEI)平台的帮助下完成。
原文标题:The SPACE Framework for Developer Productivity,作者:Ralf Huuck