开发者体验:现代企业架构的关键一环

开发者,体验,现代,企业,架构,关键 · 浏览次数 : 251

小编点评

**内容摘要** 本文介绍了开发者体验(DevEx)的概念以及如何优化内部平台的开发者体验。 **重要指标:** * 可用性 * 可寻性 * 可信度 **优化方法:** * 缩短反馈周期 * 增强开发速度 * 创建技术文档 * 鼓励互相理解和协作 **关键点:** * 开发者体验是用户体验(UX)的延伸。 * 开发者体验对组织非常重要。 * 提高开发者体验可以帮助留住优秀工程师。 * 开发人员体验的衡量指标包括代码分析、拉取请求和代码审查等。 * 建立良好的开发者体验可以提升开发速度和产品质量。

正文

在之前的文章中,我们详细介绍了平台工程的基本内容,文中指出平台团队应该采用产品的方法构建内部开发者平台,即 Platform as a Product。
 

内部平台面向的用户则是企业内其他部门的开发人员,因此如果要充分体现平台及平台团队的价值,那么打造优质的开发者体验(Developer Experience,即DevEx)是必不可少的一环。本文将介绍开发者体验的相关指标以及优化方法。
 

什么是开发者体验?

开发者体验是用户体验(UX)的延伸,其重点是受技术方面影响的用户,例如工具、语言和工作流程。当谈论用户体验时,通常指的是外部人员如何与我们开发的软件或网站交互,以及产品的易用性、简单性和直观性。但 DevEx 远不止是“开发人员的用户体验”:它意味着确保开发人员能够轻松地理解并利用 API 来实现他们自己的应用和用例。
 

开发者体验对每个组织都很重要,内部平台的优质体验可以帮助组织留住优秀的工程师。然而,通常情况下随着组织的规模越来越大,技术越来越先进,技术栈不断扩大,开发者体验通常被削弱。为了解决这一问题,许多企业开始重视内部开发工具/平台的开发者体验,将敏捷性作为其重要衡量指标之一。
 

开发者体验的衡量指标

为开发者提供良好的体验具体体现为可以让程序员快速上手,并将挫折感降到最低。劣质的开发者体验则是一场无休止的战斗,开发人员需要耗费大量时间和精力弄清楚代码应该做什么,如何让它运行起来,这在某些情况下会造成优秀工程师的流失。当一家公司内部的代码十分折磨人时,一个有才能的开发者就会选择手中其他的优质机会离开。
 

在改善开发者体验之前,企业需要确定能够准确衡量开发者体验优劣的指标,正如著名的管理顾问德鲁克所言“如果不能衡量它,那么就无法管理它”。
 

交付时间

在软件开发中,交付时间是指从项目开始到最终代码交付的所需时间。理解开发团队的交付时间有助于了解该指标的评价标准。此外,如果交付时间缩短且最终代码交付质量很高,这说明开发团队的效率提升,也可以从侧面反映内部开发者平台拥有良好的使用体验。
 

自动化程度

自动化和协作是提升效率和加速交付的关键。优秀的 DevEx 需要合理的架构设计以及工具来实现,包括尽可能的自动化。
 

拥有才能的开发人员不应该把他们的时间和精力浪费在琐碎的任务上,而应该在工作流程中充分利用自动化,从而让他们把更多的时间专注在开发过程中。具体而言,这个指标可以衡量某一时期内实施的自动化流程的数量。
 

开发速度

开发者速度反映了一个开发者在特定的时间范围内能完成多少工作。企业可以利用开发者速度指标来了解开发者的工作量。在大多数情况下,开发速度是交付一个最终功能或产品所需的全部活动和努力的总和
 

观测开发者速度可以帮助团队了解消耗他们时间的常见障碍,包括缺乏持续集成和部署、上下文切换、工作分心以及流程中存在的障碍等。使用速度指标可以确定需要优化的领域。
 

衡量开发者体验的3大支柱

与用户体验类似,开发者体验也包含多种客观和主观的衡量标准,用户体验的三大支柱:可用性可寻性可信度,也是衡量开发者体验的标准。
 

可用性

可用性测试是指开发者使用代码、文档或其他相关工具及产品的简易程度。通过一个内部调研收集反馈可以更充分地了解开发者使用这些组件时是轻松的还是困难的。内部调研问题示例如下:

  • 对你来说,使用代码库是否容易?
  • 我们提供的工具是否为你的工作提供了支持?
  • API 是否为你提供了你所需要的信息?
  • 你是否适应我们的编程语言或框架?
     

可寻性(Findability)

可寻性是指软件工程师可以轻松地找到他们在工作需要的信息、系统或工具。要构建一个优秀的 DevEx 包括让基本信息有迹可“寻”,以提供最佳的用户体验。这包括提供符合逻辑和上下文的搜索结构和功能、有逻辑的文档以及根据需要不受限地访问工具。平台团队需要密切关注开发人员的反馈,当反复出现任何与可寻性有关的抱怨时,需要利用这些反馈来改善团队的流程。
 

可信度

可信度是指开发人员是否信任产品及其带来的优势。在开发过程中,企业可以通过创建稳定可靠的服务或产品、提供足够的资源以减轻工作压力以及支持工具来获取开发人员的信任。
 

另外,随着开发人员所采用的技术不断变化,满足内部开发人员使用的各种技术的扩展需求也是一大挑战。而开发人员是否继续采用平台团队的软件或服务,即一致性,是衡量可信度的一个关键指标
 

值得注意的是,开发人员的高产出和优秀成果并不完全意味着开发人员对组织有足够的信任。特别是如果工作环境让开发人员感到筋疲力尽、员工流失率高、或者他们需要面对大量的技术债务时,信任度就会大打折扣。
 

如何优化开发者体验?

缩短反馈周期以增强工作流程

敏捷开发的目的是提升开发速度的同时不牺牲开发质量。在这个框架中,反馈周期指为验证和接收有关软件开发过程的反馈而建立的机制。这包括了代码分析和跟踪、拉取请求和代码审查、持续集成和部署、生产前环境的性能验证、单元测试以及生产中的性能监控。
 

总的来说,如果能很好地集成到平台团队推出的内部开发者平台中,这个过程对于开发者来说是非常高效的,并能够减少繁琐过程带来的负面影响。例如,代码分析和跟踪以及获得关于代码性能的即时反馈。
 

一切文档化

从团队工作流程到常见问题(FAQ)以及其他琐碎的要点都要记录下来。我们的目标是创建一个知识库,作为唯一的标准来源。在软件开发过程中,有很多变化的部分,创建技术文档能够有效地跟踪这一切。这样一来,在出现任何问题时,开发人员都有一个可以参考的资料,尤其当团队加入新成员时,有一份可靠的文档可以帮助新成员更好地上手工作。
 

鼓励互相理解和协作

当一家公司能够培育出良好的开发者体验时,每个团队都会敏锐地意识到他们的责任和目标,以及它们为谁提供服务。因此每个团队也有一个舒适的地方来表达他们的需求和对功能的要求,以帮助他们更好地工作。
 

在组中中实现这一点很简单。首先要为员工创造机会和空间,通过各种团队活动,让来自不同团队的员工可以走到一起,相互学习,积极分享信息。这将有助于建立一个积极的环境,从而提高生产力。平台工程也可以成为促进理解和协作的好方法。
 

总结

总而言之,创建优质的开发者体验需要平台团队的持续努力和不断改进。当企业内部拥有良好的开发者体验时,不仅意味着员工之间信任度更高,也意味着建立了一种先进的企业文化。最终,会推动员工积极履行自己的职责,从而为企业带来巨大的发展。

与开发者体验:现代企业架构的关键一环相似的内容:

开发者体验:现代企业架构的关键一环

在之前的文章中,我们详细介绍了平台工程的基本内容,文中指出平台团队应该采用产品的方法构建内部开发者平台,即 Platform as a Product。 内部平台面向的用户则是企业内其他部门的开发人员,因此如果要充分体现平台及平台团队的价值,那么打造优质的开发者体验(Developer Experi

企业如何构建内部开发者平台?

平台工程是一种新兴的行业趋势,帮助企业实现软件交付的现代化,加速企业数字化转型。企业通过平台工程,旨在提高开发人员的生产力以及开发体验,同时也为应用程序开发提供一个稳定可靠的基础。平台工程团队通过构建内部开发者平台(Internal Developer Platform, IDP)将所有的技术和工具

应用部署初探:3个主要阶段、4种常见模式

应用部署是一个将软件提供给用户的过程,通常包含配置环境、安装及测试等步骤。现如今,大部分企业在部署新的应用程序时,会至少自动化其中一些步骤。应用程序部署的策略会影响该应用的性能、稳定性以及运行速度,因此有时会在向所有人提供更新之前,先对一小部分用户进行测试。 软件开发和用户体验的现代标准要求开发人员

内部开发者平台与门户:二者有何关联?

内部开发者门户和内部开发者平台是两个密切相关的概念。通过之前的文章,我们了解到这两个概念都旨在通过提供一个自助服务层,抽象出底层技术栈的复杂性和多样性,来改善开发者的体验和生产力。然而,它们有着不同的范围和功能,且能够相互补充。 在这篇文章中,我们将探讨这两者的相似之处、差异,以及二者对现代软件开发

从原理聊JVM(三):详解现代垃圾回收器Shenandoah和ZGC

现代的垃圾回收器为了低停顿的目标可谓将“并发”二字玩到极致,Shenandoah在G1基础上做了非常多的优化来使回收阶段并行,而ZGC直接采用了染色指针、NUMA等黑科技,目的都是为了让Java开发者可以更多的将精力放在如何使用对象让程序更好的运行,剩下的一切交给GC,我们所做的只需享受现代化GC技术带来的良好体验。

iOS开发基础133-崩溃预防

现代移动应用的用户体验依赖于其稳定性和可靠性。然而,在开发过程中,我们时常会遇到各种崩溃问题。崩溃不仅会影响用户的使用体验,还可能损害应用的声誉。因此,本文将详细介绍一个名为CrashPrevention的工具类,它能够为iOS开发者提供多方面的崩溃预防措施,借助该工具类,开发者能够有效减少崩溃的发

前端开发-- Webpack 代码分割和懒加载技术

在现代前端开发中,优化应用性能是一个至关重要的任务。Webpack 作为一个强大的打包工具,为我们提供了代码分割和懒加载的功能,可以显著提升应用的加载速度和用户体验。本文将深入解析 Webpack 的代码分割和懒加载技术,帮助开发者更好地理解和应用这些技术。 什么是代码分割? 代码分割(Code S

中秋国庆花式玩法,用低代码DIY假日大屏“Vlog”

晒节日美图、假日足迹,中秋国庆花式玩法来了,现在体验华为云Astro Canvas,分享你的大屏作品,有机会赢取双节福利。

解决卡顿发热,超帧技术焕发中重载游戏动力

近几年,中国手游市场规模不断扩大,开发者通过在画面、玩法等方面的持续创新和打磨,推出更加精品化的产品。然而愈发精美的画质和复杂的玩法,也给硬件带来超高的负载,导致玩家在游戏过程中,频繁出现掉帧卡顿、发烫、续航差等体验降低的现象。 HarmonyOS SDK 图形加速服务(Graphics Accel

体验AI乐趣:基于AI Gallery的二分类猫狗图片分类小数据集自动学习

摘要:直接使用AI Gallery里面现有的数据集进行自动学习训练,很简单和方便,节约时间,不用自己去训练了,AI Gallery 里面有很多类似的有趣数据集,也非常好玩,大家一起试试吧。 本文分享自华为云社区《基于AI Gallery的二分类猫狗图片分类小数据集自动学习体验》,作者:运气男孩。 前