数字技术战略:开发者体验 —— 内部工具的“最后一公里”

这是一篇迟来的文章,我本应该在很早之前写完,但是一直都发现时机不够成熟。去年,在经历了多个低代码前端项目的售前,以及一个低代码项目的技术实践强化,国内的 IT 企业缺乏对于『开发者体验』缺乏系统性的思考。

来,先我们来看一个开发者体验(DX,Developer Experience)的定义:

开发者体验,与用户体验类似,只是对象是软件开发人员。将之与国际进行对应,便是开发人员对于针对使用或期望使用的产品、系统或者服务的认知印象和回应。有所不同的是,用户关注的内容变为库,SDK,文档,框架,开源解决方案,通用工具,API 等的开发人员的体验。

而完善开发者体验是有一些基础条件的:

  • 稳定性。SDK、库、框架等具备满足使用方持续可用的状态。

  • 功能完备。可以满足大部分的正常的功能需求。

简单来说,就是只有在可用的情况下,设计开发者体验会更加有价值,即开发者体验是一个加分项。而如果我们能在开发的前期就考虑用户体验的话,它会为后续的开发带来便利。

开发者在体验什么/h2>

数字技术战略:开发者体验 —— 内部工具的“最后一公里”

这样一来,我们对于开发者体验都能有一个简单的体会。也就能理解什么是开发者体验了。

什么是开发者体验/h3>

开发者体验是指开发人员在使用软件、工具、代码等的体验,它与用户体验类似,只是对象是软件开发人员。将之与国际进行对应,便是开发人员对于针对使用或期望使用的产品、系统或者服务的认知印象和回应。有所不同的是,用户关注的内容变为库,SDK,文档,框架,开源解决方案,通用工具,API 等的开发人员的体验。

国内开始关注开发者体验主要有以下的一些原因:

  • 外部开源。即越来越多的开发人员开源了自己的软件,迫切地需要提升软件的体验。

  • 内部开源。在内部通过开源来进行部门之间的协同效应。

  • 内部基础设施共享。让内部的开发人员使用内部的基础设施时,获得比外部开源软件更好的体验,提升其在内部的口碑。

  • API 经济。对外提供 API,需要与更多的业内组织竞争。

  • 云原生。云厂商面向开发者提供服务。

  • 生态构建。面向合作伙伴需要提供更便捷的接入服务。

  • SDK 等工具提供方。

  • ……

原因多种多样,但是其核心都是想通过开发者体验来提升竞争力。

开发者体验六要素

再次强调一下:关注开发者体验之前,应该确保核心功能:完善 + 稳定。即你需要提供可用、稳定的特性,再去提升总体的用户体验。除非,对于你的系统来说,你在一开始就不缺用户。

从我在开发社区的使用经验、网上了解的相关信息以及与一些专业人士的沟通中,我认为以下几点是进行 DX 时要考虑的要素:

  • 错误呈现。即出错时,以何种方式来呈现。

  • 文档体验。

  • 易用性。如何简化开发。

  • 交互式。降开发者学习成本。

  • 触点。让更多的人知道这个软件。

  • 支持。

太长不看版:

数字技术战略:开发者体验 —— 内部工具的“最后一公里”

触点是指如何去提供加深与开发者的关系。虽然有一个更专业的名称是『开发者关系』,但是它有一个更复杂的模型。这里就简化为触点,意思就是如何与开发者进行接触的点:

  • 内容/文章

  • 演讲/分享

  • Hackathon/黑客松

  • 论坛。只在形成一定规模时才考虑

从某种意义上来说,它是叫推广,但是呢,从个人的角度来看,触点这个用法比推广好得多 —— 触点可以让你意识到:现有的机制是不是无法连接到更多的开发者。

支持

这部分就是对于开发人员的支持了,每个人也都非常熟悉:

  • 问题反馈渠道

  • 问题反馈与响应

  • 开发者即服务。源自我之前的一篇文章《开发者即服务》,意指开发者一对于指导问题。

  • 开发者社区。

再说说开发者即服务,是(Developer-as-a-Service)的,亦可称为 “按需即用的开发者”。即当开发者使用某一工具、库,遇到任何相关的问题,可以随时找开发者为我们提供服务。哪怕是使用者使用了我们的 A 框架,但是遇到 B 框架有问题,他/她们也会觉得 A 框架有问题 ——因为 A 框架的开发者们是一种服务,一种开箱即用的服务。

度量开发者体验

考虑到度量开发者体验是一个复杂的问题,这里只简单列一下我所认为的两个易于度量维度:

  • 首次运行所需时间

  • 文档触达速度

其它的则是常规度量指标,以及对于开发者门户的度量。

首次运行所需时间

数字技术战略:开发者体验 —— 内部工具的“最后一公里”

如何提升开发者体验

从个人的角度来看,提升开发者体验是一个相对麻烦的过程。除了上述的两个指标之外,我觉得还有两种方式可以帮助提升开发者体验:

  • 竞品对比。

  • 新用户引导流程。

嗯,基本上和用户体验是类似的。

竞品对比:看齐

竞品对比,主要是通过与类似产品的对比,让自己与业内保持一致的水准。

如下是 Rust 和 Golang 的对比(只选取部分,出自于《Android Go vs. Rust: Features, Similarities & Differences》)

Rust Golang
性能 高效能,比Swift语言快一点 GO和Java的性能不及Rust
方便性 零成本运行时抽象,非常容易且安全地用于内存等处理 使用和管理容易
易于学习 需要花时间来学习和掌握用于内存管理的语言抽象 有完整的开发文档,大量的用户社区
发展速度 与Go程序相比,RUST的编译时间更长 既简单又快速

通过这样的对比,从其它产品学习。

新用户引导流程

数字技术战略:开发者体验 —— 内部工具的“最后一公里”

这是两个岗位或者角色:

  • 开发者关系,主要是要与身为开发者的用户们建立起良好的关系。

  • 布道师, 将自己热爱与信仰的技术,持续不辍地传递。

对于以 SDK、云服务等为主的公司而言,他们都会通过这与之相似的岗位来建立与开发者的联系,从而提升开发者体验。

相关资料

  • 《Understanding a Path》

  • 《APIMatic》 构建 Developer Experience Portal SAAS 服务

  • 《Backstage》 开源 Developer Portal 构建工具

  • 《活文档:与代码共同演进》如何让文档活起来

  • 《How Mature Are YouA Developer Experience API Maturity Model》

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91459 人正在系统学习中

来源:Phodal

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月19日
下一篇 2021年2月19日

相关推荐