写点什么

Skyscanner 数据文化的改进之道

作者:Ramsay Ashby, Laz Allen

  • 2023-05-22
    北京
  • 本文字数:4671 字

    阅读完需:约 15 分钟

Skyscanner 数据文化的改进之道

目前团队度量标准正流行:有很多公司提供工具来支持我们的敏捷实践,并且不乏支持各种度量标准组合价值的书籍,这些组合将引导我们的团队成为交付明星。在这篇文章中,我们将分享我们的旅程,从意识到这可以增强我们的竞争优势和表明需要改变的迹象开始。我们解释了为什么我们不只是选择部署了一个工具,而是将其视为改变我们工程管理的文化,以使其重视并利用这些指标来推动大规模的改进。


我们将解释我们在整个探索过程中对所需内容的理解是如何演变的,以及我们如何与团队一起进行试验以更好地理解这一点。我们还将分享我们对最重要指标的解释、我们受到的启发、以及我们期望如何增强这些指标。然后,我们将探讨我们在采用过程中发现的挑战、我们预测的挑战、以及我们如何改变计划以适应这些挑战。最后,这篇文章将审查我们为评估各种工具提供者而创建的价值,以找到我们认为能够帮助我们团队的价值。更重要的是,它可以加强文化变革,这是本次活动的基本目标。


在撰写本文时,Skyscanner 正在指导 85 个团队(约 700 名工程师)完成这一变革,我们已经看到了良好的采用率和洞察力,并创建了跨组织的实践社区来支持这一变革并将其纳入长期应用。我们将会讨论我们用来推动这一采用的原则。

探索指标


Skyscanner 是一个不断努力改进的组织,并且我们知道,随着周围机会的变化,我们需要不断适应。为此,我们需要不断加强我们的方法,以确保在各个层面上不断改进。我们已经使用数据来为我们的战略和日常产品开发决策提供信息,因此我们通过更深入地思考后者来实现前者是有意义的。随着 Accelerate、Agile Management 和 Project to Product 等工作的开展,这个领域已经成熟很久了,因此我们决定探索如何在整个组织中应用这些概念和实践。


追溯到大约十年前,Skyscanner 采用每六周发布一次的发布序列,并且对其整个单体代码库进行更新。通过这一序列,我们能很容易地了解在给定的时间段内我们能够发布多少“价值”,也能很容易德了解代码和工程组织的整体健康状况,因为它能很容易地比较一个版本和下一个版本的内容,以及预计发布的内容。


但是,在一个团队每天都可能多次部署变更的世界中,我们对构建新特性所需的时间并没有相同的隐式看法,因为每次部署通常只包含重要工作的一小部分。我们认识到,我们的 CI 和 CD 实践已经成熟到需要明确寻找一些曾经非常明显的信息的地步了。


我们知道,帮助我们的团队了解正确的度量标准将使他们能够识别并采取行动,对他们的合作方式进行最具影响力的改进。我们还认识到,在某些情况下,我们可以汇总这些指标,以确定组织范围内的改进。

选择指标


我们的出发点有两个。DORA指标已经作为一个概念在我们的工程组织中得到了很好的理解,因此我们有兴趣在我们的 85 个团队中探索如何更可持续、更一致地使用它们。这些指标得到合理的理解,有助于改进 DevOps 实践。也就是说,我们知道作为 DevOps 实践,我们需要的不仅仅是这些;集成和部署只占整个价值流的一小部分。此外,它们也是流程中最自动化的部分,并且通常需要在与其他价值流隔离的情况下进行优化。


因此,我们开始研究 Mik Kirsten 在《Project to Product》 一书中描述的流指标。这些指标引起了我们强烈的共鸣,这本书所描述的旅程也很合适我们。它们被称为流动时间、流动负荷、流动分布、流动效率和流动速度。


但当我们开始与试验组讨论这些指标时,我们发现新的新词汇增加了混乱,阻碍了采用。在软件行业中,“周期时间”和“进行中的工作”等术语已经广为人知,所以我们选择了坚持使用它们,以便对 Kersten 在书中使用的词汇进行更温和的学习。


我们采用的核心指标集是:

  • 史诗和故事的周期时间——端到端(包括所有计划、开发、测试、部署等)需要多长时间才能让一项工作投入到生产中

  • 进行中的工作——在任何给定的时间里,有多少并发工作项在团队的面板上处于任何“进行中”状态(即不是“要做”或“已完成”)

  • 等待时间——工作开始后,一项工作处于空闲状态的时间。等待代码审查所花的时间是该指标的最重要贡献因素之一

  • 工作分布(跨不同类别)——将每个工作项标记为“缺陷”、“债务”、“特性”或“风险”之一,并跟踪这些类别的总体分布(期望每个类别的健康组合)


我们最初的试验包括两个小组,让他们在 Excel 中手动获取这些指标,并在回顾中定期讨论这些指标。这使我们能够非常快速地证明我们可以推动团队交付进行有意义的改进。我们发现,仅通过限制进行中的工作和对团队工作方式的一些小调整,比如更好地确定代码审查的优先级,就可以史诗般地将周期时间缩短 37%以上,这远远超出了我们的预期。

评估工具


我们的出发点是,我们希望将所有的价值流和生产力指标放在同一个地方。在 Skyscanner,我们有很多工具,因此只引入一种新工具而不是多种非常重要。这也能使推广和沟通更加容易。


从那时起,我们开始审查可用的工具,并与构建这些工具的团队交流;一些关键的决定因素逐渐变得清晰了起来。


通过研究这些工具的基本理念,我们发现,有些工具是针对管理者、部门负责人和首席技术官的,而另一些工具则是对团队自身最有用的。这两种方式产生了截然不同的用户体验;产品看起来就不一样,通过外观你可以知道它们的主要目标受众。我们非常有把握地预测,一个没有被团队首先使用的工具也不会被我们的小组使用,而且一个没有被我们小组使用的工具也不会对其他人产生有意义的数据。因此,这个用例成为了我们的主要关注点。


我们还研究了工具对团队工作方式的“固执己见”程度。其中一些工具要求团队以定义的方式工作,以便产生有意义的数据,而其他工具则更能适应不同的工作方式。在 Skyscanner,我们鼓励团队调整并完善他们的工作方式以最好地满足他们的需求,因此我们不想引入一种强制执行某种约定的工具,即使数据最终会导致团队对其工作方式做出一些改变。


在经历了这个过程并试用了一些工具之后,我们决定使用 Plandek 来实际收集度量指标,并向我们的团队展示数据和洞察力。Plandek 的团队一直很出色,始终与我们合作,他们了解我们的需求,并为我们提供了相关建议,并且在某些情况下,还对产品进行了补充来帮助我们实现目标。

改变文化


这可能是我们投入最多精力的部分,因为我们认识到,任何失误都可能被误解为是我们站在别人的肩膀上瞭望,甚至更糟的是,使用这些旨在表明改进机会的指标是在衡量个人绩效。这两种情况中的任何一种都会对我们在 Skyscanner 中的工作方式造成强烈反抗,并会阻止项目的进展,甚至可能对项目的声誉造成不可逆转的损害。为此,我们制定了一个计划,重点是在引入工具之前与我们的工程负责人探讨,深入理解意图。


该计划侧重于一种基于军团领队的自下而上的推广方法。每个军团被设计为大约 6 或 7 名领队,由来自不同组、不同办公室和不同经验水平的人组成,涵盖我们所有的团队。小团体会增加责任感,因为在小团体中更难推脱,也会创造一个安全的地方,让人们可以分享他们的想法、经验和关注。我们还努力确保每个队中至少有一个人是我们所期望的团队度量的坚定拥护者,并且不超过一个人是我们所期望的后期采纳者或诋毁者。这意味着,每一个军团通常都会有强烈的积极前景,而集体建立负面情绪的风险微乎其微。


军团成员每 2-4 周会见面一次,在那里我们会带他们进行一些结构化学习——可能会解释某一特定指标的含义和为什么它是有用的,以及一些改进它的技巧——然后进行大量的讨论和知识分享。在会议期间,我们会鼓励人们尝试,将数据带回团队进行回顾讨论,等等,然后再将任何见解带回到下一次军团会议中。


虽然事后看来,我们对某些军团的确切组成做了一些小调整,其中一些支持者可能没有我们预期的那么强大,但总体而言,这种方法对我们来说非常有效,我们打算在未来的类似推广中仍遵循这种模式。随着我们在 2023 年第一季度(Q1)的进展,我们将重新平衡军团,以反映人们的不同理解水平,并使我们能够聘用新的管理人员。

成果


我们对大多数工程负责人的敬业度感到非常满意。Plandek 与我们分享的使用数据显示,大多数管理人员在一个季度中至少登录过一次,他们的定期参与程度很高。我们最敬业的团队成员设定了一个非常高的标准,每个季度可能会有几十个会话,这表明这样的团队数据是多么的吸引人。


有了这个,我们看到了组织各级对进行中的工作和周期时间的认识有所提高,并且获得了我们期望的结果;团队感到压力更小了,对工作量有了更多的控制,而且所有其他事情也做的非常棒。这些好处还没有完全渗透到对更广泛的交付图景的可见影响中,但这些事情需要时间,而且相对来说也很容易理解,所以我们很乐意耐心等待!


我们的一位领队指出:“清楚地了解周期时间还能让团队更加了解我们拆分工单的方式,并且工单的类型属于峰值型”。这是一个很好的例子,说明了对数据的了解自然会导致正确的(敏捷)改变,而无需对人们进行相关教育。


这一举措也有助于提高这些指标的知名度,使人们在不同的环境中自然而然地谈论它们,而无需任何提示。当团队在系统设计评审中要权衡选项时,将史诗般的周期时间视为一个考虑因素,这会很好。同样,我们的高管和高级领导团队也已经开始采用相同的词汇了,这既是一个好兆头,也进一步加快了采用速度。在此之前,这些只是概念;现在,它们是实实在在的措施,人们能够更好地理解它们,并且理解之后就会采取行动。

采用挑战


当然,这并非都是完美或容易的。两个最大的挑战是争夺人们的时间,以及人们的参与度是可变的。


首先,每个人都认为自己“很忙”;有些人,正如俗话所说,“忙得无暇改善”。这意味着将其定位为相对轻量级的东西,可以帮助他们腾出更多的空间来进行快速思考,这是当务之急。为此,我们通过削减仪表板来实现这一点,我们要求人们将指标降至我们认为是有用的绝对最小值。Plandek 有 30 多个不同的指标,但我们会及时了解更多。当人们开始探索我们开始研究的子集时,他们自然会开始尝试提供的其他见解。


其次,当我们与军团一起前进时,并非每个军团中的每个人都以相同的速度前进,这有时会导致不连贯的对话。如上所述,根据 2023 年第 1 季度的进展,我们将重新平衡军团,以使人们重新获得他们最受益的支持水平。我们仍然认为,从高度混合的军团开始是正确的做法,这样符合与监督无关的信息;现在,这已经得到了一定程度的证明,我们可以思考如何继续前进了。

收获


毫无疑问,我们最大的收获就是底层文化的提升是那么重要。从一开始,我们就意识到并明确表示,我们不想“推出一个工具”,而是围绕团队度量的“思考过程”。但只有在我们第一次验证了概念之后,我们才意识到,我们需要更深入地挖掘并关注基础,并将交付指标的概念构建到我们的文化中,就像我们在服务和产品指标方面所做的那样。


我们主要是通过明确我们所称之的措施(即不是“Plandek 推出”),然后在开始使用工具之前,先在军团会议上进行理论和探索性讨论。小而频繁的军团让人们对这些概念感到舒适。如果我们将其作为一种工具推出而不是作为文化变革来处理,我们本可以很容易地进行几次大型的一次性培训课程来“让人们开始使用工具”。


从那时起,这一切所花费的时间和精力都比我们想象的要多。让事情变得简单是有价值的;这并不是说要有很多指标和许多先进的使用方法,而是要让聪明的人理解其中的原因、价值,并为他们提供易于使用的工具,让他们有足够的理解来开始,然后支持他们,让他们分享他们的成功。


原文链接:

https://www.infoq.com/articles/Skyscanner-metrics-culture-improvement/


相关阅读:

迁移至云端:真的像看上去那样让人望而生畏吗?

InfoQ 2023 年趋势报告:事件驱动架构、深度学习和人工智能、云原生架构和容器化技术

平台工程的失败模式及如何避免,来自一线的宝贵经验


2023-05-22 08:003423

评论

发布
暂无评论
发现更多内容

度量分析开源社区健康度,助力企业开源生态健康发展——华为开源管理中心王晔晖

开源雨林

开源治理 OSPO OSS Compass CHAOSS

分布式场景下,Apache YARN、Google Kubernetes 如何解决资源管理问题?

星环科技

资源管理 Apache YARN

Rust-Shyper:基于 Rust 语言的高可靠、开源嵌入式 Hypervisor

openEuler

Linux rust 操作系统 虚拟机 嵌入式

代码重构:面向单元测试

阿里技术

宝塔人机识别验证:如何确保人脸识别的安全性?

百度开发者中心

人脸识别 人工智能’

电信及互联网行业数据安全内控审计建设实践 | 盾见

极盾科技

数据安全

分布式存储技术(下):宽表存储与全文搜索引擎的架构原理、特性、优缺点解析

星环科技

分布式 全文搜索

戴尔科技园动力计划,携手中南高科赋能中小企业数字化转型

科技热闻

从入门到精通,超详细的程序员Java学习路线指南

Java你猿哥

Java 数据库 Web ssm 死磕 Java 基础

数栈V6.0全新产品矩阵发布,数据底座 EasyMR 焕新升级

袋鼠云数栈

大数据 基础软件 数字化转型

分布式计算技术(下):Impala、Apache Flink、星环Slipstream

星环科技

分布式计算 Slipstream

python游戏开发-pgzero

AIWeker

Python python小知识 三周年连更

iOS MachineLearning 系列(6)—— 视频中的物体轨迹分析

珲少

分布式存储技术(上):HDFS 与 Ceph的架构原理、特性、优缺点解析

星环科技

hdfs 分布式存储 Ceph

这一秒,困扰了程序员 50 年!

Java你猿哥

Java 程序员 ssm 计算机

阿里十年资深码农共享SpringCloud微服务架构实战文档

Java你猿哥

微服务架构 Spring Cloud ssm 架构设计 架构师

iSulad+Kuasar:管理面资源消耗锐减 99%的新一代统一容器运行时解决方案

openEuler

Linux 容器 云原生 操作系统 Kubernetes Serverless

分布式计算技术(上):经典计算框架MapReduce、Spark 解析

星环科技

分布式计算

ShareSDK Google平台注册指南

MobTech袤博科技

自动化回归测试平台 AREX 0.2.8 版本正式发布!

AREX 中文社区

自动化测试 接口测试 回归测试

阿里RocketMQ创始人首次分享出这份RocketMQ技术内幕神级架构手册

做梦都在改BUG

Java RocketMQ 消息队列 消息中间件

AppleParty(苹果派)v3 支持 App Store 新定价机制 - 批量配置自定价格和销售范围

37手游iOS技术运营团队

In App Purchase AppleParty App Store Connect API 批量创建内购IAP app store

竞争焦点转向数智底座 用友能否再引领

用友BIP

用友iuap 用友技术大会 升级企业数智化底座

SysCare:为您的操作系统保驾护航

openEuler

Linux 操作系统 openEuler 内核 热补丁

星环科技自研技术,加速大数据从持久化、统一化、资产化、业务化到生态化

星环科技

大数据

分析型数据库:MPP 数据库的概念、技术架构与未来发展方向

星环科技

MPP数据库

权威学者、企业CFO荟聚上海国家会计学院,共探「智能会计 价值财务」

用友BIP

智能会计 价值财务 用友智能财务 业财融合

不愧是阿里内部新产springboot实战派文档!干货满满,不讲一句废话

采菊东篱下

微服务

基于公共信箱的全量消息实现

百度Geek说

大数据 即时通讯 企业号 4 月 PK 榜 公共信箱

Github星标120k!这份阿里独有的高并发实战笔记太强了!

做梦都在改BUG

Java redis zookeeper Netty 高并发

anyRTC快对讲融合通信指挥调度平台

anyRTC开发者

音视频 融合通信 快对讲 视频监控 综合调度

Skyscanner 数据文化的改进之道_软件工程_InfoQ精选文章