开源社区中,全力投入开源项目开发的个人开发者常常会遇到资金问题。为了将给开源社区及其产品带来的贡献转换为对应的收入以维持生活,许多个人开发者通过功德箱,即在个人页面、项目页面或产品交互的某个部分放置捐款通道,来募集资金,另一种常见的方式是通过 Patreon 等募资渠道为自己募资。

然而,个人的流量是有限的,能通过上述方式募集到足以支持自己持续贡献的资金的开发者只是少数的明星开发者。例如 Mojolicious 为许多公司带来敏捷的 Web 应用开发,其作者也时不时得到相关公司的资助。例如 OpenResty 跟 Mojolicious 类似,为公司信息化道路上建立入口网关这一步提供了可靠的解决方案,因此其开发者早期也被公司雇佣全职参与 OpenResty 的开发。

沉默的大多数并非如此。他们并没有自己写出明星项目,或者拥有足以让自己获得关注度从而接受资助的社交能力。他们往往是开源项目的贡献者之一,即使为项目实现了富有价值的功能或为社区的发展,例如文档化和培训,做出了显著的贡献,但是作为团队的一员很难以自己个人的身份获得资助。

诚然,现在的开源社区正在资助个人开发者的议题上进行持续的探索。例如 GitHub 的 Sponsor 功能和前面提到 Patreon 资助渠道,还有其他类似的仿品。但是作为最广泛存在的开源参与形式,即个人开发者参与明星开源项目,在这个开源项目本身拥有足够的关注度和募资能力的情况下,如何将部分组织募集的资金用于资助社区的个人开发者,仍然缺乏广泛的系统性的方案。诸如 Apache 基金会这样的组织,一方面没有细化到每个项目的资金归属,因此每个项目也就没有自己可以动用的资金,另一方面组织上也没有关注资助个人开发者的问题,其资金主要用于维护基金会的日常运作和活动运营开销。

我在 2016 年到 2018 年间通过 Perl 6 项目接触到 Perl 社区,作为风靡一时的程序设计语言社区,它通过 The Perl Foundation 来以 Perl 语言及使用 Perl 语言开发的软件的范畴为自己募资。这其中令我印象深刻的是基金会拥有一个称为 Grants 的流程,它系统性地向所有帮助 Perl 语言进步的个人开发者提供了一个获取资助的渠道。你可以看到个人开发者如何简单地提出自己期望获得资助的提议,如何通过简单而有效的流程受监督的完成工作并最终获取资助。

Perl 社区在社区运营上是公认的经验丰富,接下来我们从 Perl 基金会的组织架构、Grants 的社区意义、Grants 的运作方式和 Perl 的社区文化四个方面,展开介绍 Perl 社区如何系统地资助开源社区的个人开发者,以及其成功的开源社区经验都有哪些秘诀。

Perl 基金会的组织架构

准确无误地介绍一个组织的组织架构往往是冗长而枯燥的,因此我们仅从实际关心的资助个人开发者角度切入来看待,详细的介绍可以从这个网址[1]获得。

Perl 基金会的组织架构层级很薄。理事会(the board of directors)是基金会的决议人员,理论上拥有基金会所有事务的决策权力,但通常只行使否决权。理事会通过投票来做出基金会的关键决定,但日常工作授权给理事会选举出的总理(president)来监督,而财务工作交给财务官(treasurer)来做最终审批。

理事会之下是指导委员会(Steering Committee),它们的成员是实际决议领域事务的负责人。例如会议委员会(Conferences Committee)负责运营北美的 Perl 会议以及帮助全世界范围内的 Perl 会议的开展,资助委员会(Grants Committee)则负责 Grants 的评审、资金发放和监督,其中资金相关的操作需要财务官做最终审批。

除了以上具有决议权限的成员以外,还有大量的志愿者参与具体事务的执行,例如会议的举办方、主持人和演讲者,Grants 的提议者和监督人。

Perl 基金会采用开源社区常见的精英领导制(meritocracy),即根据成员的贡献、价值和天赋,赋予成员特定的职责和身份。Perl 基金会预期一个贡献者在持续参与贡献的情况下通常在一到三年后就可获得对应领域事务的决议权,换言之,成为相应委员会的成员。关于精英领导制的讨论是一个丰富的话题,一般说来,它通过对辛勤劳动和重要贡献给予回报这样朴素的原则,吸引广泛的贡献者积极参与和做出实绩,同时赋予持续活跃的优秀成员决议权以推动社区发展。

[1] https://www.perlfoundation.org/legal.html

Grants 的社区意义

Perl 基金会是我看到过的第一个明确地制定针对个人开发者的资助流程的组织。即使是 GitHub 的 Sponsor 计划,本质上也与功德箱的方案类似,依赖开发者的个人魅力来募集资金。Perl 基金会利用自身的影响力募集资金,并将资助通过 Grants 发放给致力于 Perl 发展的开发者,这将减少个人开发者在做出贡献以外的负担。

那么,Perl 基金会自己是怎么看待 Grants 的社区意义的呢?这里对官方说明[2]做一个演绎的转述。

对于接受 Grants 资助的人来说,意义显而易见。

对于社区来说,首先,资助 Perl 开发者的先锋队和布道师,显然能够优化 Perl 的使用体验、丰富 Perl 的生态系统和帮助用户理解 Perl 的价值。官方说明中着重强调了布道对草根(grass-roots)用户的帮助,并承认它对 Perl 发展的重要性。关于这一点,我会在 Perl 的社区文化一节里展开讨论。

其次,Grants 独特地强调对个人开发者资助,将提升开源社区的知名度,激发人们讨论自由(免费)软件和什么是最能支持非商业开发的资助模式的热情。显然,本文的创作就是这一目的实现的最好证明。

最后,Grants 的存在鼓舞了整个社区,社区成员以之为傲,并对社区产生归属感。围绕 Grants 流程,社区成员可以建立起有趣、活跃而富有成效的沟通。

官方说明还包括了对资助者的益处的说明,鉴于本文的主题不做展开,仅提及一点。Perl 基金会是符合美国税法 501(c)(3) 条例的非盈利组织,向 Perl 基金会的捐赠可以抵扣个人或组织所需要交纳的税费。我不确定中国有没有类似的税法,以及这样的税法是否能在中国支持开源社区的发展,但是它确实是一个有趣的方向,仅在此分享以供讨论。

[2] https://www.perlfoundation.org/grant-benefits.html

Grants 的运作方式

Grants 的运作方式并没有一个官方的繁琐而详尽的流程,实际运行时,它大概由四个部分组成,即开发者提出 Grants 的提议,资助委员会对 Grants 提议进行表决,开发者开展 Grants 提议内容的工作开展并通过监督人进行汇报,以及最终汇报后由资助委员会发放资助。

Grants 的运作方式可以用下面的状态流转图来展示。

Perl 基金会官方网站上提供了撰写 Grants 提议的指导方案[3]。

通俗地说,Grants 提议有点儿像关键业绩指标计划,包括标题、开发者简历、工作对 Perl 社区的好处、工作的具体内容、预期完成的时间以及希望获得资助的金额。

可以通过典型的例子来对 Grants 提议有个直观的感受。

CPAN 是 Perl 软件库的分发中心,你可以对于理解成 Java 世界的 Maven Central 或 JCenter,其上存在着 Perl 开发必不可少的软件库,就像在 Java Web 开发中使用 Spring 那样。

丰富 CPAN 的软件库显然是一个潜在的 Grants 提议,例如这个提议[4]旨在实现一个发布在 CPAN 上的 Perl 软件库以支持在 Perl 程序中使用 async/await 关键字并获得其他语言中类似的语义效果。

在这个提议中,提议人 Paul Evans 清楚地说明了自己工作的价值,以及关键的结果目标,包括前置条件修复缺陷、实现 async/await 功能、撰写文档和发布具体篇幅的介绍博客。同时,对项目的耗时有一个明确的预期,虽然最后不出意外的延期了。

这个提议在随后的 Grants 提议表决阶段全票通过[5],同时通过的还有 Perl 6 的运行时 MoarVM 的优化提议。实际上,Perl 基金会目前对开发最活跃的 Perl 6 领域相关的提议和开发 Perl 5 CPAN 富有价值的软件库以及组织会议的提议通过率都是比较高的。提议人通常会请求数千美元的资助款,这大概与 Perl 基金会规定资助的上限是一万美元有关。

这两个提议都完成了,其中 Future::AsyncAwait 库的 Grants 资助发放有对应的公告[6]发表,而 MoarVM 的工作没有明确的公告,但从开发者后续没有提意见来看,应当是实际发放了。这也是精英领导制的一个方面,社区成员通过信任来协作,而不依赖于繁琐的流程和僵化的形式。

在 Grants 运行期间,开发者需要通过监督人进行定期汇报,例如 Perl 6 的核心开发者 Jonathan Worthington 持续的通过 Grants 从自己对 Perl 6 的发展的重大贡献中获取回报。最近的一个提议[7]是有关 Perl 6 的 AST 标准化的,这个大工程在 Moritz Lenz 的监督下持续的提交进度汇报。

  • https://news.perlfoundation.org/post/rakuast-2020-06

  • https://news.perlfoundation.org/post/2020-07-grant-report-jnthn-rakuast

  • https://news.perlfoundation.org/post/grant-report-jonathan-worthington-rakuast-2020-08

  • https://news.perlfoundation.org/post/jnthn-grant-report-rakuast-2020-09

并且在最新的一个汇报中,Jonathan 汇报了自己将要暂离开发一到两个月。这里又是精英领导制发挥作用的时刻,对于社区的卓越贡献者,社区成员总是报以信任并给予他们自由地发挥自己价值的途径。当然,如果 Jonathan 一去不返,这也将成为 Grants 最终决议是否发放和后续其他提议是否通过的重要判断依据。或许更重要的是,这将影响他与为之工作十余年的语言的社区构建的信任关系。

Grants 并不总是一帆风顺的,开发者精力有限或技术上不支持等原因都有可能导致已经决议通过的 Grants 计划搁浅。

例如,这个旨在实现 Perl 6 网络编程完整支持的提议[8]就因为工作过程中发现 Perl 6 语言的现状,具体地说是底层实现,不支持其提议的工作内容,而遗憾取消 Grants 的进程[9]。

当然,也有在 Grants 提议的投票这一阶段就被否决的。例如,这个旨在实现某个小众语言到 Perl 6 的转换的提议[10]就被质疑其实际价值,并最终由于其提议的资助金额与价值不符而被否决。

[3] https://www.perlfoundation.org/how-to-write-a-proposal.html
[4] https://news.perlfoundation.org/post/grant_proposal_futureasyncawai
[5] https://news.perlfoundation.org/post/september_2018_grant_votes
[6] https://news.perlfoundation.org/post/gc-future-async-complete
[7] https://news.perlfoundation.org/post/gp_rakuast
[8] https://news.perlfoundation.org/post/grant_proposal_improve_perl_6_
[9] https://news.perlfoundation.org/post/grant_cancellation_improve_perl6_networking_support
[10] https://news.perlfoundation.org/post/grant_proposal_cito_to_raku_translator
[11] https://news.perlfoundation.org/post/grants_september_2020_votes

Perl 的社区文化

这部分内容是正文的补充,与 Grants 没有直接的联系,更多的是我在参与 Perl 社区的时候对这个社区的观察和想法。

本文成文时间较短,这个章节想写的东西一时半会儿还写不完,预计会以类似朋友圈闲谈的方式讲讲 Perl 的社区文化。欢迎关注我的知识星球,我的不成文的想法将会以朋友圈的形式发布在知识星球上,同时知识星球也支持直接提问交流。

如何系统地资助开源社区的个人开发者?相关推荐

  1. 昇思MindSpore超级英雄榜发布!超300位开发者入选国内首个AI开源社区开发者进阶榜单...

    点击蓝字 MindSpore 关注我们 小说界有武侠英雄榜,游戏界有王者英雄榜,那么AI届的超级英雄榜,你了解多少呢?作为人工智能届的明珠昇思MindSpore,从2020年3月28日开源至今,已有4 ...

  2. 开源社区——自我成长的策源地

    FastCAE开源平台三年的运营,接触了大量的开源社区开发者.在与开发者沟通.研讨.合作的过程中,发现有些人沟通起来很舒服.效率很高.给人很强的可信任感:有些人则表现的急功近利.信用规则意识淡薄,致使 ...

  3. 超千家企业和机构共建的区块链开源社区,助力区块链工科师资研修

    2016年,微众银行.腾讯.四方精创.深证通.华为.亦笔科技.神州信息.博彦科技和越秀金科等金链盟成员单位组建开源工作组,协作打造了一套国产安全可控的金融级联盟链底层平台FISCO BCOS,并于20 ...

  4. 微软和开源社区---开发者的福音

    微软在2012年在开源社区有非常大的动作,明天要参加的#微软MVP社区巡讲# http://msdn.microsoft.com/zh-cn/msmvpevent.其中会介绍的一个主题就是VS2012 ...

  5. Elastic开源社区:开发者招募

    开源社区招募啦 即日起,Elastic开源社区招募社区开发者,只要你对开源项目.开源社区感兴趣都可以报名参加. 贡献者将获得哪些奖励 所有参与社区建设的贡献者 只要代码通过审核,对社区有一定贡献 必将 ...

  6. 堵俊平:开放治理是开源社区的终极之路 | DEV. Together 2021 中国开发者生态峰会...

    点击上方"开源社"关注我们 | 作者:堵俊平 | 转载自:开发者生态 | 编辑:刘雪洁 | 设计:宋传琪 | 责编:王玥敏 内容来源: 2021 年 6 月 5 日,由 Segme ...

  7. 拥抱未来,开源先行!OpenI启智社区首批优秀开发者榜单即将出炉

    随着人工智能前沿技术在多行业领域的广泛应用,中国正迎来一场关于AI技术的创新变革,其不仅加快了各行业数字化升级的进程,更明确了AI开发者的角色定位,而且在这场AI变革发展的浪潮中,开源正于技术创新.生 ...

  8. 我们将要建立的EasyDarwin开源社区

    从12年12月我开始建立EasyDarwin开源项目,已经三年多的时间了,从开始最简单的一个开源流媒体服务器项目,如今已经发展成为目前国内最大的一个流媒体开源社区,截至目前已经有十几个项目在Githu ...

  9. 从黑客文化看区块链开源社区的自我组织与成功之道

    来源 | 链闻 ChainNews 撰文 | 李画 原书作者 | 埃里克·斯蒂芬·雷蒙 出品 | 区块链大本营(blockchain_camp) 「要尊重能力,要珍视和捍卫自由.」--罗伯特·安森·海 ...

最新文章

  1. atom编辑器的安装
  2. Windows系统Pycharm软件重置设置,恢复默认设置方法介绍
  3. Ubuntu16.04中安装mininet
  4. of介词短语作定语_如何区分介词短语作状语还是作定语
  5. 程序员没有女朋友的原因,我终于找到了!
  6. 为什么不用小驼峰也能查到数据库数据_为什么不用驼峰命名创建表名和字段?...
  7. 华为轮值董事长徐直军:AI发展十大改变
  8. 使用minidom来处理XML的示例(Python 学习)(转载)
  9. 七:动态规划-数字三角形
  10. 瑞星对Windows7捆绑杀毒软件等消息的回应
  11. 助学贷款系统导入预申请时问题解决办法汇总
  12. 加载类型库/DLL 时出错。 (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY)
  13. 计算机带给人们的负面影响,互联网给人们所带来的负面影响
  14. 软件测试归纳法调试,《软件测试艺术》读书笔记(34)_归纳法、演绎法、回溯法、测试法调试及其原则、错误分析...
  15. 关于企业邮箱域名备案方法
  16. 如何同步微信信息php,微信小程序中实现同步请求的方法
  17. 编译原理—语法制导翻译、S属性、L属性、自上而下、自下而上计算
  18. css设置始终显示滚动条
  19. PyQT6的从零开始(三):在pyqt桌面程序简单内置网页浏览器
  20. Linux搭建TFTP服务

热门文章

  1. oracle install manually(手动建库)
  2. linux系统硬盘怎么找,linux系统查看磁盘空间
  3. php rewrite 规则,Apache RewriteCond ReWrite规则
  4. 2021最新版JAVA开发面试那些事儿~(结尾有字节、华为面试内容)
  5. 信关站、关口站、earth station、gatway
  6. int.TryParse非预期执行引发的思考
  7. 从新零售到社区团购,这中间发生了多少变化?
  8. Linux上查找最大文件的3种方法
  9. sso 服务端配置_使用身份传播配置服务提供商启动的SSO
  10. 【业务模型】深入理解AARRR模型(内附关键指标详解思维导图)