前言
随着软件复杂性的增加,开发者工具的重要性愈加凸显。开发者工具是一个泛指,与「开发工具」不同,开发者工具作用于软件开发生命周期的每一个环节,例如规划、设计、实现、测试、部署和维护。开发者工具是软件开发的「二阶加速器」,在软件开发的过程中发挥至关重要的作用。
笔者是一位开发者工具行业的从业人员,在过去的 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(笔者认为对上游的贡献也属此类)。
待整理,几位一线工具开发者(也包括两位 VP)的随访(已完成)。
内部开发者工具
内部开发者工具的价值主要体现在:帮助组织内部的开发者完成软件开发生命周期,提高效率并减少成本。
通过与受访者的交流,笔者发现,内部开发工具的价值,主要通过以下几类方式凸显:
- 通过一系列具体的事件响应。例如当软件供应链安全问题发生时,如何通过合理构建工具体系,来彻底消弭供应链安全问题的隐患。
- 通过辅助软件开发生命周期的落地实施。例如构建一个合理的预期管理,通过开发工具所特有的,对软件开发的二阶加速能力,确保一个指数递增的达成。
内部工具的开发者,在汇报关系中存在一定的弱势。因此如何建立一个合适的指标体系,度量价值并确保持续增长,是内部工具开发者所关注的重点。一些常见的度量指标包括:DORA、SPACE、DevEx 等三个框架。
待整理,杨振涛(深圳:已完成)和孙建新(北京:待进行)的随访。
结语
开发者工具贯穿了软件开发生命周期的每一个环节,一个良好的开发者工具链,可以提高开发者工作流程的效率,为组织打造一个可靠、高效的平台工程基础。
本文的写作目标,并非是普及知识,或是输出观点。而是通过对一线的实践经验的总结,来帮助开发工具的从业人员,获取一个相对全面的视角,对于开发工具价值的探求上,能够拥有相对可依赖的路径。
中国有句古话,纸上得来终觉浅,绝知此事要躬行。希望和大家一起脚踏实地地工作,为开发工具行业探索出更多可行的道路。