Enable javascript in your browser for better experience. Need to know to enable it? Go here.
Blogs Banner

工程平台:软件开发效率最大化的关键

新冠疫情带来的快速数字化转型浪潮改变了许多组织对信息技术(IT)的看法。许多组织以往将IT视为成本中心或支持职能,而现在则认为它能够推动增长和增加商业价值,这导致比以往任何时候都更多的领导者意识到了技术是推动现代数字业务发展的强大驱动力。毫无疑问,IT投资正在增长:Gartner预测,到2023年,全球IT支出将达到4.6万亿美元。

 

然而,如今的经济状况迫使企业需要确保他们从投资中获得切实的回报。这不仅需要优化成本,还需要优化业务灵活性、可伸缩性和复杂性。组织可以通过两种方式实现以上目标:

 

  1. 专注于提高个人层面的能力

  2. 通过工具和培养生态系统来实现有效的软件开发,从而创造卓越的开发者体验,在组织层面实施变革

     

本文将探索第二种方法,通过工程平台实现流畅无阻的开发者体验。

 

但首先,开发者体验中存在什么阻力?

工程团队经历的阻力类型

软件开发生命周期中存在多种类型的阻力,包括:

 

  • 交付阻力——开发者必须等待所需的基础设施、决策或工具
  • 访问阻力——访问相应系统存在延迟或障碍
  • 认知阻力——非增值活动的工具过多、操作复杂,导致信息过载

 

点击此处,详细了解糟糕的开发者体验及其对软件开发生命周期(SDLC)的影响。

 

虽然阻力的来源各不相同,但它们都存在一些共性:它们会耗费开发者的时间和精力,而不会创造最终用户价值。例如,产品团队有时可能会发现自己在支持基础设施或构建和设置CI/CD管道/环境——虽然这些活动都必不可少,但却不会为创造客户价值做出贡献。过多的非增值活动会产生过多的上下文切换,增加开发者的整体认知负荷。这降低了开发者集中精力和最大化价值交付的能力。

工程平台通过隐藏对业务价值不重要的复杂性来减少阻力

为了尽量减少这种情况,软件开发团队需要一个强大的工程平台,该平台可以隐藏复杂性并提供自助服务功能,这样开发者就可以专注于构建面向客户的功能。接下来,让我们看看这样的平台应该是什么样子。

 

什么是工程平台?

 

一般来说,平台是加速企业交付客户价值能力的技术基础。工程平台对其软件开发团队而言亦是如此,软件开发团队实际上是工程平台的客户。良好的工程平台由三个核心组件构成:交付基础设施中心、服务中心和知识中心。平台应该得到轻量级治理和无障碍开发者体验门户的支持。

工程平台的基础组件

交付基础设施(DI)中心为产品团队提供从开发到生产的自助服务和自动化“黄金路径”,并提供质量和安全检查。该中心包括常见的跨平台工具,例如持续集成设置、可观察性和监控能力。它还可以加快在现有云服务之上使用基础设施即代码(IaC)构建高阶基础设施产品和环境的速度。

 

服务中心提供按需发布和发现API与事件以及文档与软件开发工具包(SDK)的功能。它帮助产品团队重复使用和组合数字资产,从而限制依赖关系并加速交付。

 

知识中心方便开发者发布项目文档、组织级教程、指南、加入/退出方案、架构、合理的默认设置以及安全性和合规性信息与策略,打破组织孤岛。统一搜索还有助于开发者更快地发现解决方案。通过适当的文档编制和自动化,我们看到开发者加入项目并积极参与其中的时间从几个月/几周减少到几天。

 

自动化治理,具有工程平台可观察性,提供与软件交付和生产系统相关的实时仪表板和业务指标洞察,例如DORA核心四指标(4KM)、可用性、云成本以及对指标和合规性要求的持续监控和跟踪。Gartner将其分为两类——第一类是工程智能平台,第二类是工程价值流管理平台

 

开发者体验门户为产品团队提供具有自助服务功能的单点,从而提升开发者体验。

 

Spotify的Backstage,作为开发者门户

 

Spotify为构建开发者门户开发了一个名为Backstage的开源平台。虽然该平台提供了开箱即用的核心功能,但组织仍然需要根据自己的需求进行调整。我们使用Backstage为TELUS构建了一个名为Simplify的门户,为他们的8000名工程师改善了开发者体验。点击此处,了解更多信息。

 

工程平台的运作

 

Thoughtworks的NEO平台

 

在Thoughtworks,我们构建了自己的NEO工程平台,以提高软件开发效率。NEO提供多种自助服务功能和开发者工具,以消除阻力并简化流程。通过以开发者及其产品开发旅程为中心,NEO可以帮助他们专注于最重要的事情——开发软件以快速交付商业价值。

Thoughtworks的NEO平台成果

开始使用工程平台

 

我们的经验告诉我们,将工程平台作为产品来构建是成功的关键。我们已经确定了对这一成功至关重要的四项原则:

 

  1. 以客户为中心(在这种情况下,客户即开发者),传递价值
  2. 循序渐进——建立MVP并遵循持续交付原则
  3. 确保平台易于使用,减轻采用阻力
  4. 制定明确的成功衡量标准,例如提升DORA核心四指标

 

除了上述四项原则外,负责构建平台的团队还应负责:

 

  • 战略:团队应确定技术堆栈、工程实践、标准操作程序和开发的核心基础设施,涵盖从构想到上线的整个周期
  • 工具:团队应该构建模板和架构蓝图。他们应该开发跨不同工作负载的应用程序和基础设施自动化框架。这样做将确保使用合理默认设置为生产铺平道路
  • 采用:工程团队应能够通过协作、知识共享和能力开发计划采用标准化实践并充分利用各种模板
  • 指标:团队必须衡量交付指标,并创建用于实施监控和警报的仪表板和可视化指标

建立承担4项关键责任的平台工程团队

一个良好的工程平台将从开发者工作列表中消除重复和非增值的任务,使他们能够集中精力、投入技能为客户创造价值。它还将鼓励重复利用数字资产;这不仅可以节省时间、提升开发者体验,还可以降低环境成本。

 

从长远来看,这将便于团队成员加入/退出项目,尽可能减少过渡期间的损失。它还将提供明确的文件记录,预防不确定性并减少技术债务。

 

免责声明:本文内容仅表明作者本人观点,并不代表Thoughtworks的立场

利用工程效能实现卓越