开发者工具

目标:认知情况摸底

形式:半结构化访谈

时长:10-20 min

面向人群:开发者(从业者,用户群体,换了行业的开发者)

导语:希望能了解您心目中的开发者工具的认知,是怎样的(范围的约束)

访谈目标:

  1. 了解在一线开发者的认知中,都有哪些工具,开发者与从业人员的理解之间,差异在哪里?

​ 1. 是否有我们不了解或未重视的工具品类

​ 2. 我们眼中的技术趋势,是否符合开发者的认知

  1. 希望明确差异的成因
  2. 了解工具在实际生产中,如何对开发者产生价值

访谈内容:

  1. 您听说过的开发者工具包括哪些?(列出打印出来

​ 1. 您能够区分哪些是云厂商提供的,哪些是独立厂商提供的么(圈出)

​ 1. 您认为云厂商与独立工具厂商的工具有何区别

​ 2. 除了这些之外,您还知道哪些开发工具

  1. 您认为上述这些工具能够帮您实现怎样的价值

​ 1. 您平时喜欢用哪些工具?

​ 2. 它们为您平时的开发带来了哪些助益?

  1. 您是否了解这些关键词:IaC、II、GitOps、STS、声明式 API

​ 1. 如果听说过,您在日常工作中会明确地采用这些概念,或推广给他人吗?

​ 2. 您平时从哪里发现新的开发工具?

  1. 现在流行的工具,您使用起来会觉得复杂么?

​ 1. 您认为工具使用上的复杂性在哪里?能否举几个例子

​ 2. 对一款新的工具,您所能接受的学习成本是?(预估时间)

  1. 您从事/离开开发工具行业的原因是什么?(从业人员访谈)

访谈技巧:

- 记录

- 保持中立性:保留看法,无条件倾听

* 善用引导语汇,激发表达:常用的有【然后呢】,【还有吗】,【您是否还有补充】,【能否举一个具体的案例】

- 采访内容应以访谈目标为中心,注意结构

- 应尊重对方的节奏(尽可能寻求例证,发掘根因

-–

访谈对象:厂商背景(中国),管理岗,20 年开发经验

  1. 云厂商与独立厂商之间的差异

​ 1. 中立性是二者最大的差异

​ 2. 云厂商的工具聚焦在软件部署

  1. 复杂性问题

​ 1. 云厂商的复杂性被收敛了

-–

访谈对象:厂商背景(中国),从业人员,一线研发,3 年开发经验

使用形态:UI(Console)、CLI

面向开发者的都算

独立厂商:盈利模式 - 技术支持为主

云厂商:以资源售卖为主

场景不同,挑战不同

独立工具厂商 > 云厂商对外工具。

竞争所需的精细打磨。

基础架构决定工程效能和基础软件的质量。

工具是上述能力的体现。

-–

访谈对象:厂商背景(中国),VP,20 年开发经验

您认为云厂商与独立工具厂商的工具有何区别?

​ 1. 生态更恶劣

​ 2. 毛利率降低 / 竞争激烈 / 精细化管理

​ 3. 软件服务化 / 资源利用率

开发者工具能够帮您实现怎样的价值?

​ 1. 赚钱(企业服务)

​ 2. Go / Sun

开发者工具研发的认知模型

  • 受众:从业者,有可能进入该行业的开发者

  • 目标:

    1. 帮助开发者工具从业人员,拓展边界
    2. 帮助本行业其它技术方向的从业者,深入了解该行业的特点
  • 摘要:随着软件复杂性的增加,开发者规模的扩张,以及平台工程、GitOps 等技术的兴起。面向开发者所提供的工具类软件如同雨后春笋般涌现。

  • 关键问题:

    1. 云厂商 vs 独立工具厂商
    2. 开发工具的价值
  • 大纲:

    1. 背景
    • 目标:介绍文章撰写的背景,正本清源,构建语境
    • 关键点:
      • 工具研发 in anywhere,例如平台工程、GitOps 等
      • 开发者工具的认知有差异,内因、外因
      • 开发者工具是否需要独立研发,如何评估价值,尚未达成共识
      • 通过访谈完成信息收集,体现信息来源的多样性
    • 在过去,工具研发往往局限于软件开发生命周期的「开发」这一阶段。
    1. 认知差异
    • 目标:阐释差异与成因,拓展读者认知,提升获得感
    • 关键点:
      • 不同组织的关注点存在差异
        • 举例:云厂商(工具不盈利)、自有业务厂商(工具降本)、工具软件厂商(工具+企业服务/订阅盈利)。
      • 不同用户的认知习惯存在差异
        • 举例:声明式、命令式、交互式。
    1. 价值模型
    • 目标:介绍开发工具的价值模型
    • 背景:
      • 企业服务,
    • 关键点
      • 开发工具都能够实现什么样的价值?
        • 举例:赚钱(企业服务、订阅)、降本(IDP)、扩大水池/防止锁喉
    1. 总结
  • 大家对工具认知的差异

  • 开发者工具如何产生价值

前言

随着软件复杂性的增加,开发者工具的重要性愈加凸显。开发者工具是一个泛指,与「开发工具」不同,开发者工具作用于软件开发生命周期的每一个环节,例如规划、设计、实现、测试、部署和维护。开发者工具是软件开发的「二阶加速器」,在软件开发的过程中发挥至关重要的作用。

笔者是一位开发者工具行业的从业人员,在过去的 7 年里,一直从事开发者工具、基础软件与平台工程相关工作。笔者热烈地爱着这份工作,但常怀一丝忧惧。当行业上行,规模极速扩张时,面向开发者和平台工程的工作自然如鲜花着锦、烈火烹油,在支撑企业发展的道路上,起到「二阶加速器」的作用。但当行业萧条,万马齐喑的时刻,开发者工具和平台作为企业内部的成本中心,又如何能够独善其身?

一千个人眼中有一千个哈姆雷特,每个人心目中对于开发者工具的定义都各不相同。而随着笔者接触越来越多的工具开发者,也深刻地体会到,如何发挥和体现开发者工具的价值,并且说服老板或投资人认可工具所产生的价值,是每一个工具开发者所面临的重大挑战。

因此,笔者走访了十几位开发者工具从业人员,针对「你心目中的开发者工具」和「工具体现了怎样的价值」两个主题,进行了不记名随访。希望能够帮助将来的同袍,通过一个更广泛的视角,来增广见闻;也希望其它方向的开发者们,借此建立起对开发者工具的认知。

让我们一起开始一个奇妙的旅程吧~

准备工作

在开展实际的随访开始之前,我首先做了许多准备工作,包括:

  • 确定目标人群。这次随访的主要人群都是在一线进行具体编码工作的开发者。受访者从刚毕业的同学到 20 余年经验的编程高手;从一线工程师到上市公司的技术 VP,不一而足,随访过程中尽可能保证受访者的多样性,以获取更广泛的观点和启发。
  • 确定访谈目的。围绕两个关键的主题,提前做好功课:
    • 定义:了解在一线开发者的认知中,开发者工具都包括哪些,是否有我们不了解或未重视的工具品类?工具在开发者和使用者的角度下,是否有认知的差异,而这些差异又有怎样的成因?
    • 价值:了解工具在实际生产中,如何对开发者产生价值?

开发者工具的行业特点

20 世纪末,一位中国作家王小波说过这样一段话:「参差多态方是幸福的本源」。这段话的大意是,我们要尊重万事万物的多样性,许多不同的事物共同构成多姿多彩的世界,方能使我们拥有幸福的体验。

作为开发者工具从业人员,我曾通过工单、开源社区、线下工作坊等方式,帮助过至少上千名不同的开发者使用我开发的工具,他们的背景各异,但个个身怀绝技,充满好奇。

在这个过程中,我有了一个有趣的发现,在人们对于开发者工具的认知中,根据其核心维护团队的不同,大体分为三类:

  • 独立工具厂商/作者(Individual Provider):通常指创造或维护工具的独立厂商或个人,类似于 Hashicorp、Docker Inc. 等,部分独立工具厂商也同时兼有云服务提供商的特征。
  • 云服务提供商(Cloud Provider):通常指面向开发者提供在线服务的厂商,类似于 AWS、Google、Azure 等
  • 内部开发平台(IDP):通常指组织内部开发者平台与工具的构建者,例如 Google 的 SRE 团队。

接下来,我们将分别针对这三类情况,聊聊开发者工具在大家的认知中的特点、差异,以及差异的具体成因。

独立工具厂商/作者

独立工具厂商(Individual Provider)通常围绕自己和拳头产品展开,解决一个领域最痛点的问题。与云服务提供商不同的是,独立厂商通常在自身所处的领域具有非常强的专业性,甚至是该领域事实标准的建立者。例如:Docker Inc、Hashicorp 等。

独立工具厂商的产品也是百花齐放,对于大部分受访者来说,日常所关注的开发工具大多由这一类厂商所创造。它们出现在每天的开发工作中,如影随形,帮助开发者完成软件开发生命周期中的每一个环节。

举一个典型的例子,Hashicorp 是我最喜爱的独立工具厂商,曾创造了基础设施管理工具 Terraform,于 2020 年上市。从年报中可以看出,Hashicorp 的收入构成,大部份由订阅服务以及技术支持所提供。

独立工具开发者则很少有持续稳定的收入来源,往往凭着自身巨大的热情,来进行工具的维护。网络流行语「为爱发电」可以恰当地描述他们的工作状态。部分开发者可以通过基金会以及类似于 Open Collective 这样的财务托管机构,获得微薄的报酬,但与他们付出的精力相比,则远远不足。

无论是独立工具厂商还是独立工具开发者,都有一个共同的特点。他们投入了巨大的精力进行工具本身的开发。对于独立工具厂商来说,它们将工具作为利润中心,具有竞争力的工具产品,可以带来巨大的商业回报。而对于独立开发者来说,心智层的满足,以及声誉上的激励,是支撑这一类受访者前行的动力。

云服务提供商

云服务提供商(Cloud Provider)长期面向开发者开展工作,毫无疑问是工具生产大户。云服务提供商所创造的工具,往往用于帮助开发者部署、交付上云。当然也有例外,例如通过经验的积累而沉淀下来的工具,例如 Kubernetes 等等~

云服务提供商与独立厂商或开发者相比,最大的差异在于中立性。将用户锁定在当前云供应商上是云厂商最自然的商业诉求,而与此同时,为了避免客户被其它供应商锁定,云厂商自身也会积极去为供应商无关的解决方案贡献自身代码。例如,为了争夺入口,云服务提供商会积极向各种独立开发工具的上游贡献插件,方便多云用户接入自身。但同时云厂商必须推陈出新,推出平台独有的新功能特性,使得用户无法轻易「下云」。从而形成了一个「莫比乌斯」式的贡献循环。

从复杂度上看,部分云开发工具的复杂度被独立工具开发工具所收敛了。例如对于软件交付来说,大量的复杂度被掩盖在 Kubernetes、Terraform 等中立解决方案下,作为云服务提供商来说,工具开发工作的复杂度已经非常小了,但因为云服务提供商涉及的工具数量庞大,需要广撒网,钓大鱼,因此工具治理的复杂度是关注和优化的重心。

从商业环境上来看,云开发工具所面临的竞争态势更加恶劣,虽有千里长城,处处烽火狼烟,难以专心谋其一隅。但云服务提供商也有自己独特的优势,即算力调度能力。云服务提供商可以通过调度,获得更多空闲算力,提供付费的短时增值服务,如 Remote Development Stack,以此来获取额外的回报。

内部开发者工具

内部开发者工具(IDT,Internal Developer Tool)是一个典型的成本中心的例子。对于负责构建内部开发工具的受访者来说,若是想要向组织的决策者证明自己工作的价值,则不是一件容易的事情。

在中国,有一个概念叫做「降本增效」,IDT 的实施者,往往要从降低全局总成本,和增加交付/运营效率入手来体现价值。但无论成本还是效率,一则如何量化,二则如何描述与开发工具之间的因果关系,这两个问题,像两座横亘在高原冰川之上的山脉,成为了困扰每一个 IDT 实施者的巨大挑战。

有一个观点得到了大多数受访者的认同,那就是基础架构决定工程效能和软件交付的质量,工具是上述能力的体现。内部开发者工具的落地,需要组织践行长期主义,坚信产品工程能力可以换取商业上的成功。

价值取舍

中国有句古话叫:「工欲善其事,必先利其器」,这句话体现了工具在工程实现中的重要作用。

但在商业层面上,相信每一个开发者工具的从业者,都受到过这样的灵魂拷问:「要你何用?」。

在实际的调研中,笔者发现,每一类开发工具对于价值的取舍是有差异的。例如独立工具厂商/作者、云服务提供商和内部工具的开发者,都是有差异的。

独立工具厂商/作者

对于独立工具软件厂商来说,开发者工具的盈利能力是企业的生命所系,因此商业化是非常关键的一环。

需要找几个朋友做随访~

云服务提供商

《大教堂与集市》中提到了开源软件的两个作用,扩大水池、防止锁喉,在开发者工具方向也很适用。

在笔者负责云开发工具的那几年里,曾经做过这样的报告:

  • 工具改进了现有的开发模式和生产关系,产生了效能,支撑了企业的扩张,扩张的企业用规模效应产生了边际效益,反哺了工具的投资,从而产生飞轮效应。
  • 云服务提供商通过接入独立开发工具的上游,从而可以建立天然的用户池,随着关联工具生态的扩张,云服务提供商的用户池也可以获得自然的增长。

通过与受访者交流,笔者也获得一个新的视角。对于肩负企业决策权的受访者来说,开发者工具主要提供两方面的价值:

  • 第一个方面是赚钱,开发者工具中的 SaaS 和云服务版本,可以直接通过增值服务的方式,来获取额外的收益。
  • 另一个方面是声誉,开发者工具作为链接云服务提供商与开发者之间的桥梁,例如 Java 之于 Sun 和 Oracle、Golang 之于 Google(笔者认为对上游的贡献也属此类)。

内部开发者工具

内部开发者工具的价值主要体现在:帮助组织内部的开发者完成软件开发生命周期,提高效率并减少成本。

通过与受访者的交流,笔者发现,内部开发工具的价值,主要通过以下几类方式凸显:

  1. 通过一系列具体的事件响应。例如当软件供应链安全问题发生时,如何通过合理构建工具体系,来彻底消弭供应链安全问题的隐患。
  2. 通过辅助软件开发生命周期的落地实施。例如构建一个合理的预期管理,通过开发工具所特有的,对软件开发的二阶加速能力,确保一个指数递增的达成。

内部工具的开发者,在汇报关系中存在一定的弱势。因此如何建立一个合适的指标体系,度量价值并确保持续增长,是内部工具开发者所关注的重点。一些常见的度量指标包括:DORA、SPACE、DevEx 等三个框架。

待整理,杨振涛(深圳:已完成)和孙建新(北京:待进行)的随访。

结语

待补充~

Previous
Next