解析高效团队:Netflix 如何优化平台工程与提升开发者生产力

今年开始,科技行业似乎刮起了一阵致力提升开发者生产力的风。通常情况下,开发人员并不是太信任这些所谓用来提升生产力的工具。然而在裁员的大环境下,开发人员对就业前景感到担忧,因此他们被动地开始使用这些工具。

但根据对开发者体验的研究表明,愉悦的开发者体验能够有效提升开发人员生产力,相反,任何影响开发人员良好体验的东西都可能会降低开发人员生产力。

因此与其仅仅以衡量个体产出为目标,不如转向软件交付增效,关注团队及部门的效率和速度。这种以团队为基础的视角更具可扩展性。随着这一趋势的出现,开发人员生产力工程团队崛起,其关注点是开发人员体验(DevEx)和增效

Netflix 的生产力工程总监 Kathryn Koehler 表示:“开发人员生产力是我们如何使技术社区能够专注于他们的日常工作,而不必担心各种不同的 Netflix 内的规范操作,以及软件开发生命周期的所有阶段。”当下 Netflix、Google、LinkedIn、Spotify 和 Atlassian 等高效组织都在衡量其平台团队对开发人员生产力的影响,各企业将关注放在度量上,把重点放在持续改进内部流程与方式。

今天就跟随本篇文章,一起来了解 Netflix 如何组织并衡量其自己的平台工程和开发人员生产力。

01 Netflix 独有团队结构

Netflix 拥有一套复杂的团队拓扑结构。Koehler 表示,其中有一个由150人组成的中央平台团队,负责创建工具、平台和基础设施,用于抽象复杂度,以便内部开发者使用,从而充分发挥他们的工作能力,专注于他们卓越领域。

Koehler 领导的80人的开发者生产力工程团队负责内部开发循环——即构建、测试、编码、持续集成,以及端到端的开发体验,包括源代码控制和依赖管理。她解释说:“我们正在构建一个端到端的开发者中心,这是一个命令中心或者说控制中心,供开发人员拥有和操作他们的软件。”

此外,更大的 Netflix 平台工程团队包括云基础设施团队和数据平台团队。Koehler 说:“我们将生产力从云基础设施中抽象出来,这应该是一个关注点的分离,无需深入了解计算和网络以及存储的细节。如果你是应用程序开发人员,或者你正在生成一个服务,你应该能够只需在途中提供一些参数,比如应用程序配置,无需了解底层设施相关知识。”在核心上,Netflix 生产力和平台部门的目标是将分散开发者注意力的任何事物抽象出来

Netflix 平台团队,包括产品管理和内部开发者支持有大约450人,支持2500名工程师组织,以及500人的数据团队,平台团队成员占总人数的15%

02 内部开发者支持

一个集中的团队负责平台团队的一级和二级客户支持,为内部开发人员就那些非常复杂、棘手的问题提供支持。因为从整体支持的角度来看,如果无差别对待所有问题,将会给平台团队造成过重的负担。

Netflix 有几名由主题专家担任导师的内部支持工程师,分别负责:

  • Tier 1:帮助开发人员找到并使用最适合工作的工具。

  • Tier 2:深入进行调试,帮助处理更复杂的问题。

  • Tier 3:提供更深层次的基础设施知识。

Koehler 表示,这些工程师往往是乐于助人的技术人员。但如何确定这个团队需要多大,以及主题专家团队需要多少人,这种平衡十分复杂。当然,并不是每个企业都有这样的平台预算和规模,但这是 Netflix 使其内部工程师更加强大的重要策略。

03 衡量开发者生产力

尽管 Netflix 参照并执行 DORA 和其他定量指标,Koehler 表示,许多补充的开发者生产力指标是无法用具体数值量化的。Netflix 根据2021年的 SPACE 开发者生产力框架对开发者生产力进行衡量,概括为以下五个类别:

  • 满意度 Satisfaction

  • 表现 Performance

  • 活动 Activity

  • 沟通和协作 Communicaiton and collaboration

  • 效率和流程 Efficiency and flow

Netflix 的开发者生产力工程团队还有一些关于工具使用体验的问题:

  • 你觉得这个工具好用吗?

  • 使用这个工具让你在工作中更加高效吗?

  • 这个工具 bug 多吗?

Netflix 的平台团队还记录了他们收到的内部支持电话数量。他们根据服务的团队和平台的不同提出了具体的问题。例如,他们询问 Java 开发人员:

  • 应用生成的启动时间是多少?

  • 构建时间是多少?

  • 执行测试套件需要多长时间?

  • 你对可观测性工具信任度高吗?系统的健康状况在观测工具上一目了然吗?

Netflix 计划构建更多的仪表板,这些仪表板将整合定性调研反馈,以及更多的定量报告和仪表板。Koehler 表示,后者的目的是让开发者可以看到他们自己的系统目前的运行情况及其有效性。她的团队还努力推动与开发人员更加主动和持续地进行沟通。

Netflix 的公司价值观包括开放、广泛、主动分享信息,以及坦率而直接地沟通。因此在企业内部,开发者的回应都不是匿名的,这确保了更紧密的 DevEx反馈循环。了解提供反馈的人是谁很重要,这也让 Koehler 的团队能够与内部开发者闭环,也就是在收到开发人员“抱怨”后及时改进,并回过头与其核实情况是否有所改善。

04 Netflix 的黄金路径

Netflix 将其平台称为“黄金路径”。这条平坦的黄金路径包括提供一流支持的基础设施、语言和工具。在过去的两年中,由于业务内容拓展,Netflix 基础设施团队不得不地将他们的职责扩展到影片制作和流媒体之外,为游戏、广告和直播的全新业务和技术需求提供支持。

此外,在不同的开发团队中,Netflix 有不同的平台团队,以构建平台提供或为特定团队构建全新的平台。目前,生产力团队负责数十种不同的工具和平台,这也是为什么在之前提到平台团队正在努力创建一个统一的内部开发者门户,以促进一致的用户界面和开发者体验

05 内部文档的整理与优化

文档对于开发人员的重要性不言而喻,但实际上养成为文档做贡献的习惯对开发人员来说并不容易,在 Netflix 中也不例外。Netflix 强调的自由和责任文化,但是工程师们有时候在撰写文档方面可能会过于强调自由而忽视责任。同时平台工程师可能在编写文档的时候更多从平台提供者的角度出发而非开发者。

为了提高文档质量和水平,平台团队正在与 Netflix 培训团队合作,并解决以下的问题:

  • 团队内是否有正确的信息架构?

  • 信息是否可搜索?

  • 信息是否易于发现?

  • 信息是否可以整合到工具中?

这种文档策略致力于将所有内容整合到一个可索引、可搜索、规范化和可用的工具中。同时,平台团队还在研究如何将文档集成到软件开发人员生命周期中,并让平台工程师对文档和操作手册负责。

06 内部平台宣传与推广

Netflix 平台团队有时也会遇到另一件在平台工程策略中很常见的事,就是宣传和推广平台团队构建的“黄金路径”。

宣传并推广让开发人员使用最新的库、工具或框架是一件十分具有挑战性的事情。因为开发人员有日常固定的工作,并且在他们的日程安排中找到进行迁移的机会(这可能很复杂)很困难,因此平台团队需要努力将这些迁移变得尽可能无缝

参考链接:

https://thenewstack.io/developer-productivity-engineering-at-netflix

你可能感兴趣的:(java,运维,大数据)