这是一篇迟来的文章,我本应该在很早之前写完,但是一直都发现时机不够成熟。去年,在经历了多个低代码前端项目的售前,以及一个低代码项目的技术实践强化,国内的 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 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!