费曼技巧(The Feynman Technique)
费曼技巧是一种 “以教为学” 的学习方式,源于诺贝尔物理奖获得者,理查德·费曼(Richard Feynman)。这个学习方法的秘诀是尝试用最简单的语言说清楚你要表达的内容,哪怕是一个深奥的科学理论,你也能用简单的表达方式让5岁的孩子或者60岁的老人很容易的理解和熟记。由于我也是在上周(2020.04.03)刚刚收到的成为ASF Member的邀请,所以《走进ASF系列》文章与其说是和大家分享,不如说是和大家一起学习!
ASF 是什么?
我想“ ASF 是什么?”是一个最简单的问题,也是一个最难回答的问题。简单是因为你可以以任何一个角度去描述,就像盲人摸象。而困难是因为你很难用一句话就完整全面的定义“ ASF 是什么?”。所以面对这样的问题我的考虑是,先描述表象,再探究其细节。就像我们回答宝马是什么,我们会说“别摸我”,奥迪是什么?我们会说“四个圈”。那么 ASF是什么?我想说,ASF是下面这个漂亮的羽毛 ;)
了解Logo也许是欣赏一个新事物最好的开始。那么下一秒你将有一连串的问题浮现出来?她多大了?干什么的?怎么运作的?和我有什么关系?接下来我们慢慢道来…
与阿里同龄
Apache软件基金会(ASF)是在美国注册的503©3非营利的公共慈善组织,与1999年成立。那么成立的最终目的是什么呢?ASF最核心的目的如下:
- 通过提供硬件、通讯工具以及业务基础架构,为开放式协作开发软件项目提供基础。
- 建立独立法人实体,任何公司和个人可以向其进行捐赠,并能够确保这些捐赠将用于公共利益。
- 为个人志愿者提供避免针对基金会项目的法律诉讼的手段。
- 保护应用于其软件产品的“Apache”品牌免受其他组织的滥用。
所以ASF是有着美好愿景和伟大使命的公益性组织。ASF和阿里巴巴一样都成立于1999年,而且在利他方面可谓英雄所见略同,阿里巴巴以“让天下没有难做的生意”为使命, ASF则致力于开源软件生态的营造,让软件技术能够在全球共享,这是ASF无比耀眼的魅力所在!
逐本溯源
ASF的成立并非凭空出事,在ASF的前身其实是叫“Apache 小组”,这个小组当时在维护由NCSA编写的HTTPD Web服务器。从1995到1999年,由“Apache小组”所领导开发的 Apache HTTPD web服务成为了市场的领导者,一直持续到现在,目前仍占据了市场65%的份额。当年使用该服务的人越来越多,但是最初的开发人员对该项目失去了兴趣,并转移到其他项目上,从而使用户失去了支持。于是一个叫Brian Behlendorf的大牛在自己的计算机上创建了一个邮件列表,供这些用户协作以修复,维护和改进该软件。从1995年2月不到12位软件工程师通过电子邮件共享代码补丁开始,到后面的有了Apache网站,网站上又托管了很多关联项目(例如mod_ perl项目,PHP项目,Java Apache项目),这样的情形面临的问题越来越多,比如,潜在的个人被法律攻击等,进而越来越需要一个更加协调和结构化的组织来解决这些问题。于是到1999年6月ASF便注册成立了!:)
成长的苦恼
随着软件产品的不断成熟,用户越来越多,反馈的问题和软件增强的建议也越来越多,同时参与进行代码修补的人也越来越多。问题也随即而来,最初的几位创始人根本没有办法处理所有的问题,Review所有的代码补丁,Merge所以的提交,那么怎么办呢?当时Apache成员认为如果某位开发者,已经“赢得”了成为社区的一员的资格时,他们就授予此开发者对代码仓库的直接访问权限,也就是目前我们说的Committer,这样不断的增加团队的力量,也提高了团队开发项目的能力,进而更有效地维护和发展了团队。当然这只是冰山一角,ASF的治理当然不仅仅是Committer的发展了,下面章节我们进行系统的介绍。
ASF治理
目前ASF拥有超过140多个跨技术范围的项目,涉及350多个具体项目,7000+的代码贡献者,参与人员覆盖了全球230多个国家,为保障其健康的发展必须有一套简单高效的组织架构和治理手段。那么ASF的治理将涉及到ASF组织本身的治理和ASF对Apache网站所托管的项目的治理。
公司的治理
总的来看,ASF的治理相当简单:由成员(Member)来选举董事会;董事会任命各种管理人员并创建PMCs;PMCs定期向董事会报告,大多数其他管理人员向总裁然汇报,然后总裁向董事会报告。
1. 组织架构
ASF公司治理首先要有一个完善的组织架构,和分工明确的角色职责。如下图所示:
上面的组织架构整体围绕的“董事会”进行角色构建,董事会有主席(Chair)和副主席(Vice Char)。 公司设有总裁,副总裁,秘书,财务总监,法律顾问等职位。每种角色各肩其职。作为初识ASF的文章,我们简单了解如下宏观的内容即可:
- ASF 由董事会来管理,董事会由成员构成。
- 现有成员(Member)会定期提名和选举新成员,每年提名并选举9名董事加入董事会。
- 董事会任命业务官员,并将特定政策或业务领域的责任分配给每位官员。例如,法律事务委员会副总裁负责为ASF和所有Apache项目设置法律政策,并与公司顾问进行合作。
- 董事会任命执行官,包括总裁,秘书,财务总监等,他们负责ASF的特定领域运营。
- 大多数官员每月直接向总裁报告,而总裁则每月向董事会报告ASF的整体运营状况。
- 基础设施副总裁向总裁汇报,并对基础设施团队的运营进行宏观监督。在团队中,带薪的基础设施 管理者角色有助于管理日常操作,带薪人员确定工作优先级,并维护所有Apache项目中使用的服务。
那么这些角色是如何产生的呢?ASF还需要一套选举任命的机制来保证整个组织的健康运行。
2. 选举和任命
董事会负责创建并更新项目管理委员会( PMCs )。董事会只是批准孵化器的合理构建请求(毕业成为 TLPs )或来自 PMCs 自身(添加或删除 PMC 成员)的请求。在每种情况下,向董事会建议进行的变更都已经由相关的 PMC 完成了投票。如下图所示:
- 董事会(Board):董事会由9名懂事组成,负责管理和监督ASF的各种事物。包括人员,资产(资金,知识产权,商标和支持项目所需要的基础设施)以及为项目分配资源。
- 项目管理委员会(PMC):项目管理委员会由董事会决议设立,负责具体一个项目的事物管理。每个PMC由至少一名ASF官员组成,并指定一名成员为主席。每个PMC中的主席就是ASF在各个项目中的眼睛和耳朵,对ASF至关重要。当然PMC负责发展各自新的PMC成员和发展项目的Committer。
- 各种VP:ASF有这种VP,他们大多数官员每月直接向总裁报告,而总裁则每月向董事会报告ASF的整体运营状况。
也许这些内容对于刚刚了解ASF或者刚刚加入ASF开源建设的同学简单了解一下即可,因为似乎距离还很“遥远”。(加引号原因是,我认为是 思想认为 的遥远,不是真的那么远)。接下来我们看看和具体项目贡献者密切相关的内容 - ASF项目治理。
项目的治理
每个项目都由项目的PMC进行独立管理,PMC以Apache的方式,遵循由所有官员为所有项目设置的一些核心原则。如下图所示:
上图我以Apache Flink项目为例勾勒了项目治理的概要图。每个PMC都由ASF董事会进行管理,每个PMC都会负责制定自己项目的技术方向。
- PMC每季度直接向董事会报告一次。董事会对PMC进行监督,以确保PMC健康发展,顺利的管理社区,确保PMC遵守Apache的原则。项目的技术方向由PMC指定,董事会不对项目提供技术治理。
- 每个PMC的主席都是该项目的副总裁,因此也是ASF的官员。主席的主要职责是确保项目报告全面,并提交到董事会。
- PMC对软件版本发布进行投票。PMC进行适当的发布治理,进而确保了所有的源代码版本发布都是ASF官方行为。
- PMCs为项目提名并选举新提交者(Committer)。PMCs还负责提名并投票新的PMC成员,然后PMCs向董事会汇报建议的变化。
- Apache孵化器(Incubator)是一种特殊的(I)PMC:它的工作是指导新建立的Podling社区,以帮助他们学习Apache Way。在每个Podling对他们的软件发布进行投票后,IPMC成员也对该Podling的发布过程进行监督和投票,以确保Podling逐渐成长为一个合格的Apache项目。
- 根据政策,只有个人可以充当会员,提交者(Committer)或PMC成员(Member)或管理人员。这是ASF和Apache项目保持其独立性的一种方式。
同时每个项目都有不同的参与角色,比如:用户(Users),贡献者(Contributors),提交者(Committers),新的PMC Members等等。不同角色的职责如下:
- 用户(Users) - 就是使用项目润君的的大众,他们以错误报告和功能建议的形式向开发人员提供反馈进而为项目做贡献。
- 贡献者(Contributors) - 就是开发人员,以写代码或写文档的形式为项目做贡献。开发人员可以多种方式共享社区,比如参加者邮件列表讨论、提交代码补丁、提交文档等等。
- 提交者(Committers) - 提交者是一批特殊的贡献者,他们是拥有代码仓库写操作权限的开发者。
- PMC 成员(Member) - 项目管理委员会(PMC)成员,是由在项目的开发中表现突出的提交者(Committers)选举出来的,他们拥有写入代码仓库的权限、拥有社区相关事务的投票权、以及有权提名新的PMC成员和Committer的权利和职责。
ASF 董事会现状
今年ASF年度成员会议, 在3.31~4.2期间举行, ASF 董事会选情相当激烈,有16为ASF Member参与竞选。竞选结果是去年的九席董事换了七位,二位董事 Craig Russell 和 Shane Curcuru 获得了连任。 目前同时会成员如下:
- Shane Curcuru (连任董事)
- Bertrand Delacretaz(原董事)
- Roy Fielding(原董事)
- Niclas Hedhman(新任董事)
- Justin Mclean(新任董事)
- Craig Russell (连任董事)
- Sam Ruby(原董事)
- Patricia Shanahan (新任董事)
- Sander Striker (原董事)
2020 新晋ASF Member
上面的竞选和任命章节已经介绍过,ASF一年一度的成员会议中,不仅仅会选举9名董事成员,也会提名和投票新的ASF Member 。
(此处省略。。。等待官宣)
恭喜他们(当然也祝福一下我自己的幸运)!据最新统计(2020.04.06) ASF Member 全球有765名,华人有40名,其中在中国的有22人。
ASF 一张图
对于初识的用户来说,上面的内容也许太多了,记住一个Logo容易,记住一张图似乎比上面的文字要简单许多:)
ASF金字塔描述了不同角色的群体特征,越上面人群越小,但对ASF肩负的责任越大,越下面人群越大,但对ASF的责任越小,参与越容易! 记住 “ASF是什么?” 从 羽毛 Logo开始,参与ASF贡献从 用户 开始。
ASF 一句话
图可以描述表象,文字可以表述内涵,开篇的羽毛代表了ASF,但怎么描述这个漂亮的羽毛呢?“ASF是一个与阿里巴巴同龄(成立于1999年),有完整的组织(董事会)架构管理,以软件(140个领域)技术全球(覆盖230个国家)共享为使命的公益组织”。
小结
本篇是《走进ASF系列》的第一篇,我努力尝试在我自己身上体验“费曼技巧”,从概要介绍了什么ASF,进而推进介绍ASF组织架构,ASF公司治理和项目治理,意在让 想要 或 刚刚 参与ASF贡献的同学对ASF有一个初步认知。最后介绍了目前ASF董事会成员和2020年新晋的中国ASF Member。同时,为了方便大家记忆,以一张图,一句话的方式收尾本篇内容。
作者介绍
本人孙金城,淘宝花名“金竹”,阿里巴巴高级技术专家。2011年加入阿里,在2016年开始ASF社区贡献,目前是 ASF Member, PMC member of @ApacheFlink and a Committer for @ApacheFlink, @ApacheBeam, @ApacheIoTDB。
【本文为51CTO专栏作者“金竹”原创稿件,转载请联系原作者】