2016 年,Spotify 正在拼命招人,可按公司自己的说法,新来的人反而在拖慢整个公司。它的平台团队专门做其他工程师要用的内部工具,他们盯着一个衡量新人上手的数字:一个新工程师要多少天,才能让自己的第十个合并请求(也就是第十段代码)被合并进去。答案是 60 多天。几年后,在公司的播客上,Spotify 的研发负责人问那年刚加入的工程总监皮娅·尼尔松,当时觉得这个数字还能接受吗。「我在别的公司当了 15 年工程师,」尼尔松说,「那感觉就像被泼了一盆冷水。」
Spotify 向来以小而自主的团队出名,每个团队需要什么就自己做什么。平台团队把公司的开发者当成自己的客户,于是先去问他们:到底是什么在挡路。得到的回答有两个。一是总被打断:「新人只能拍拍别人的肩膀去问,因为几乎从来没有文档。」二是什么都找不到。按公司的说法,同一个服务可能有 15 个版本,各自照顾不同团队略有差别的需要;新团队要用类似的服务,往往干脆再造一个。想知道一样东西怎么用,唯一的办法是去问同事,工程师们给这种做法起了个名字,叫「靠小道消息开发」。
最省事的办法是集中管起来。尼尔松的团队否掉了。「我们基本上知道,没法做一个集中式的方案,」尼尔松说,「那根本行不通,没人会用。」Spotify 的工程副总裁泰森·辛格说得更直白:「我们要是出去叫大家做某件事,他们耸耸肩,照样爱怎么做就怎么做。所以我们真得把东西卖给他们。」
于是团队做了 Backstage:一个地方,谁都能在里面找到每一个服务,看到它归谁管,读到它的文档。各团队继续拥有自己的那部分,接进来就行。Spotify 后来说,公司里有 280 个工程团队用它管理 2000 多个后端服务,80% 的代码贡献来自 Backstage 核心团队以外的工程师。2020 年 3 月,Spotify 发布了它的开源版本。
按 Spotify 的统计,那个上手数字从 60 多天降到了稳定的 20 天。这些数字都出自 Spotify 自己的博客和播客;同样这些年里,新工程师还要做一系列入门教程、参加为期一周的训练营,所以这个下降不能只算在一个工具头上。2021 年,Spotify 说 80% 的内部用户对 Backstage 满意。