从谷歌Go团队辞职后,我成为一名全职开源维护者,目前收入已与谷歌薪酬年包持平
本文最初发布于 Filippo Valsorda 的个人博客。
去年 5 月,我辞去了在谷歌 Go 团队的工作,试验一条对开源维护者而言更可持续的职业路径。我维护着各种各样的开源工具(Go cryptography、透明度工具、age、mkcert、yubikey-agent……),从 9 月开始迭代模型,很高兴地告诉大家,我现在已经成为一名全职的独立开源维护者。也就是说,我把大部分时间都花在了维护上,我从那些从我的工作、计划和专业知识中受益的公司那里赚取佣金。我现在有 6 个很棒的客户,赚的钱与我在谷歌一年的薪酬相当。这证明,做一名专业的维护者是可能的,收入可以与关联市场的高级软件工程师相媲美。
对于第一批客户,我关注的是那些已经了解开源的公司,他们的工作领域与我相近,而且我可以通过网络和他们联系。我的第一个客户是 Glasklar Teknik AB,一家新成立的 Mullvad VPN 的姊妹公司,他们甚至在我有服务说明书或合同等级之前就相信这个项目。Glasklar 资助了 Sigsum 的开发,这是一个开源的公共透明度日志,旨在生成可离线验证的证据。该项目源于 Mullvad 的系统透明度研究。我一直致力于研究 Sigsum,以及兼容一致的开源透明度工具的框架和生态系统,我们合作得非常好。按照加入顺序,接下来是 Protocol Labs,他们维护着 IPFS 和 Filecoin,其研发团队对零知识证明和密码学做了出色的研究;Latacora 是一家为初创公司提供安全服务的专业团队,为客户提供像我这样的资源;Interchain 基金会是开源项目 Cosmos SDK 的管理者,这是一个大型的、极其重要的 Go+ 加密项目;Smallstep 提供易于使用的 PKI 和零信任工具(主要是用 Go 编写的!),用于管理人类和机器身份;Tailscale 是一个像魔法一样神奇的网格 VPN,对 JSON, SQLite 和 Go 特别友好。
我将详细分享下这个过程,希望可以推广我的模型,并最终帮助其他维护者采用它,尽管我还不准备建议其他人放弃一切去尝试这个方法。
这个试验始于这样一种观察:尽管开源维护者的角色对互联网乃至经济的运转至关重要,但它还没有找到一种可持续发展的表现形式。几乎所有的维护者都是志愿者或大公司的全职员工。基金会一般不支付维护者工资。少数项目通过销售支持服务或获得以功能为范围的赞助来筹集资金。
所有这些模型的激励机制都不能与项目的激励机制保持一致。随着人们生活环境的变化,志愿服务显然是不可持续的。随着时间的推移,全职从事维护的公司员工无法得到及时的补充,尤其是在项目成功的时候。支持合同占用了实际维护工作的大量时间。以功能为范围的赞助奖励会增加未来的维护负担,但又不会为其提供资金。
我采用了不一样的做法,我希望它更可持续,也希望其他人能重现它。我是一名专业的全职独立开源维护者。我通过与一些客户签订雇佣协议获得资金,我主要专注于维护工作。
我不是在出售支持服务时间或难以完成的项目成果。相反,我的客户通过以下三种方式获得价值:
降低它们所依赖的项目无人维护的业务风险,以及对其安全性和开发速度的影响;
建立双向准入渠道,确保双方的项目都取得更好的成果;
在最高合同等级中,我可以就我所擅长的任何主题提供建议,不完全限于开源项目的范围。
降低业务风险是每个赞助商都会提的要求,所以完全不是什么新东西,但对有远见的公司来说很重要。
我以前写过关于双向准入的价值,归结一下就是:我走进去,会见工程师,了解他们使用了我的项目的哪些部分以及如何使用的;然后,我在自己做规划时要考虑这些用例,当路线图上有相关的更改时,我会联系他们并让他们提供反馈。这可以改善每个人的成果:我希望我的项目能够很好地为用户服务(不管他们是否付钱给我),没有人希望在发布后再发现什么问题。公司可以通过密切监视问题跟踪系统并积极参与开发讨论来“免费”获取功能,但指派一名工程师来完成这项任务可能比雇佣我的费用还要高!
最高级合同中的专家顾问服务是我在与 Kaylyn Gibilterra、Kelsey Hightower 等人交流后,对模型做的最新改进。我可以就我在多年开源维护生涯中堪称专家的所有主题向这些客户提供建议,其中包括:密码学、协议、它们的实现、Go、软件供应链安全、开源、透明度日志、PKI……我主要关心的是它的重现性如何:我知道自己也可以靠做顾问谋生,但是,开源维护者可以通过重现这个过程在财务上维持对项目工作的重点关注吗?我觉得,这非常适合维护者:很显然,维护者是他们领域中公认的专家,因为他们在维护这个开源软件。如果一家公司已经在使用我的密码学软件,这可能就是因为他们认为我是密码学专家,他们可以把我当成密码学顾问。这一切有着很好的相关性,并且适用于任何关键开源软件的维护者:Kubernetes 维护者是编排和平台专家,ffmpeg 维护者是 A/V 专家,Web 服务器维护者是 HTTP 专家。这与项目的激励机制也是一致的:我是一名专家,因为我是一名维护者,所以继续做维护工作既符合客户的利益,也符合我自己的利益。
上面我用到了一个关键词:关键(critical)。我正在试验的模型是面向关键开源项目维护者的。你可能看过 XKCD 漫画,所谓关键是指服务于最底层的项目,而不是服务于最上层的项目。然而,究竟什么才算关键要从客户的角度来看,有许多项目至少对部分业务来说是关键的。我的描述是这样的:如果替换或派生一个依赖项所需的工作量是以工程师月为单位来衡量的,那么这就是一个关键依赖项,保留它的维护者可能就具有良好的业务意义。
具体来讲,我专门提供了持续聘用合同,而不是按小时计费或交付具体的功能。我提供三个等级的合同:白银、黄金和白金。黄金级包括介绍性会议和每季度面对面的交流。白金级包含超出开源项目范围的顾问服务。所有级别的年费用都在五位数范围内(美元)。这比聘用一名员工要便宜得多,但汇总起来,赚到的钱也能够媲美美国的高级软件工程师。每一次接触都是深入接触,通常看起来像供应商关系,而不像 GitHub 赞助商的捐赠:我发送一份服务说明书,在几周的时间里与联系人一起,向决策者推销并完成交易,我们签署协议,我每月提供发票,他们以电汇方式支付。正如 Patrick McKenzie 所说,它的形式就像企业销售。我雇了一个很棒的兼职助理,他帮助我掌握一切。
这只是一个开始,我对于能够探索这个模型如何成长很是兴奋。激励机制与开源项目的成功密切相关,因为项目越受欢迎,就会有越多的公司对保留维护人员感兴趣,从而提供更多的资源来满足日益增加的维护负荷。工作量相对于客户数量呈亚线性增长:每增加一项客户关系,我就需要跟踪一组新的相关兴趣领域和关注点,不过,管理多个利益相关者已经是开源维护者的核心技能,而主要任务仍然是所有客户共享的日常维护工作。在为白金客户提供专业建议时也会有边际成本,但作为专家,大部分工作还是可以直接处理的,并不需要针对每个新客户付出额外的努力。当然,有许多东西是新的,没有太多的先例可以借鉴,所以我知道,我的有些判断可能是错误的,我会谨慎地进行。在花了四个月的时间招募客户后,我现在放慢了节奏,以便可以更好地了解容量、带宽和新增客户的边际成本。我仍在和一些我愿意与之合作的潜在客户进行交流,并在容量规划中为他们保留空间。
长远来看,我希望这种模式不只是我在用,而是成为一条众所周知的职业路径。与后来者相比,本次试验对我来说既更简单又更困难:之所以更简单,是因为我拥有广泛的人际网络和安全涉险的经济手段;之所以更困难,是因为这对我和我的客户来说都是一个未知的领域,缺少法律、管理和营销工具。我希望随着事情的进展,障碍会减少,让越来越多的人可以使用这个模型。
关于这个模型,我计划撰写更多的文章:它目前的发展状况,下一步如何进行,以及我对它未来发展的构想。我自己并不想通过打造独角兽或平台来获取价值,所以我会尽我所能地进行分享,帮助其他人自己开拓类似的道路。欢迎订阅 Maintainer Dispatches 或在 Mastodon 上关注我,以便了解最新情况。如果有任何建议、经验或问题,欢迎通过 [email protected] 或 @[email protected] 与我联系。
声明:本文为 InfoQ 翻译,未经许可禁止转载。
原文链接:
https://words.filippo.io/full-time-maintainer/
你也「在看」吗? 👇
微信扫码关注该文公众号作者