我在开源领域的生涯,以及引领我的导师们

还没有读者喜欢这篇文章。
Three giant robots and a person

Opensource.com

我从事 Apache http 服务器的工作已经快 20 年了。我写了 9 本关于 httpd 的书,并在五十多个会议上发表演讲。我是 Apache 软件基金会的成员,并在那里担任董事会成员和执行副总裁。我负责筹办 ApacheCon,包括北美和欧洲的会议,这是 ASF 的官方会议。

我做的每一件事,都是因为有人鼓励我去做一些我内心深处知道自己无能为力的事情,然后在我做的时候为我欢呼。

直接的、有意的指导是我今天在专业和个人方面取得成就的 100% 原因。我非常真诚地将一切归功于过去 20 年来指导我的人们。在过去的 5 年里,我也有意地指导了一些人,以传递这种善缘。他们是否都意识到我一直在这样做,其实并不重要。我有具体的原因,为什么我认为这件事值得做。

为什么?

我认为指导如此重要,主要有三个原因。

放大你的影响力

1997 年,David Pitts 正在为 Sams Publishing 撰写一本关于 Red Hat Linux 的书。他请我写一个关于 Perl 和 CGI 的章节,因为我当时在工作中涉猎过这些。幸运的是,这本书已经绝版了,因为我的写作很糟糕,但这促成了另一份写作工作,现在我有了 几本我非常自豪的书

1998 年,我抱怨 Apache Web 服务器的文档,Jim Jagielski 鼓励我停止抱怨,做点什么。我开始提交文档补丁,并在 2000 年 9 月,我成为第一个在没有提交过代码补丁的情况下获得 Apache 项目提交权限的人。

2000 年,当第一个 ApacheCon 由全新的基金会制作时,Ken Coar 鼓励我提交一个演讲。我没什么可说的,也从未做过任何公开演讲,但他一直纠缠我,所以我提交了一个演讲。这促成了一次又一次的演讲机会,现在我的办公室里贴满了会议胸牌,其中很多我甚至无法确定是哪个会议的。

这些是我开源生涯中最值得注意的导师。还有很多其他人,特别是 Casey West、Paul Dupree、Ken Rietz、Elizabeth Naramore、Wes Morgan、Sally Khudairi、Earle Bowen 以及许多其他人,我一按下“发布”按钮就会后悔没有提及他们。

我提到这些成就并不是因为我有多么了不起,而是因为这些人通过慷慨地投入到我的生活中,将他们的影响力扩展到他们没有影响力的领域。他们通过我,在他们自己由于缺乏时间、资源或仅仅是没有进入世界那一部分的途径而无法做到的地方,完成了事情。

为自己提供退出策略

总有一天,你将不想再做这件事了。你将想要离开这个项目,尝试其他的事情。

最近一位非常明智的同事告诉我,在你担任重要职位时,你应该做的第一件事就是确定将要取代你的人。总有一天,你将离开那个职位,除非你积极采取措施确保你的影响力在你离开后仍然存在,否则你对该职位的大部分投入都将付诸东流。

当然,有些人努力使自己变得不可替代。他们通过隐藏信息,确保一切都依赖于他们,并积极吓跑任何可能接替他们的人来做到这一点。有些人是故意这样做,而另一些人则是出于保护自己职位的愿望而本能地这样做。但是,通过积极寻找你的替代者,你创造了一种开放的文化,在这种文化中,人们不会试图排挤你,因此另一个目标也实现了。(公开记录你所做的一切是其中的另一个重要组成部分,这将是另一篇文章的主题。)

通过指导你的继任者,你可以消除自己承担整个运营的许多压力。你可以开始委派事情。你可以花更多的时间思考未来,减少花在修复只有你才能修复的损坏事物上的时间。

当离开的时候到来时,你可以确信你正在将事情交给能够继续你的愿景的人。

留下真正重要的遗产

开源是代码。代码会被重构、fork 和删除。当你离开那个项目时,你的影响力将会随着你的贡献逐渐被修补掉而减少。

你花在指导人们身上的时间将会持续下去。它将延伸到其他项目、其他行业和其他几十年。你投入到另一个人身上的每一刻都将使你的影响力在你自己的直接影响之外再延伸一点。

谁?

如果你周围有很多人,选择将你的时间投入到哪些人身上可能会让人感到不知所措。或者,你的团队中可能只有少数人可能是被指导者。无论哪种方式,以下是如何选择指导对象的方法。

识别有激情的人

寻找那些工作到凌晨 2 点解决他们不必解决的问题的人。寻找那些在其他人都说问题已经解决后仍然继续研究解决方案的人。寻找那些会喋喋不休地跟你讲一些你完全不在乎的事情,详细阐述微不足道的细节,直到你想掐死他们的人。

这些人是激情可以被引导的人。这些人值得你花时间,因为当激情被瞄准、集中和培养时,它将成为一股不可阻挡的善的力量。

识别在幕后工作的人

在任何项目中,都会有人试图站在聚光灯下,渴望成为头条新闻的人。还有一些人在幕后工作,以确保事情继续运转。因为他们关心事情是否继续运转,但不关心他们是否因此获得荣誉。

这些人正是最优秀的领导者,因为最好的领导者就像纳尔逊·曼德拉在他的自传《漫漫自由路》中描述的那样

“领导者 [...] 就像牧羊人。他留在羊群后面,让最灵活的羊走在前面,然后其他的羊跟着,却没有意识到他们一直都在后面被指挥。”

只对完成事情感兴趣的人会成为这种领导者,因为即使作为领导者,他们也专注于结果,而不是赢得赞誉。

识别才华横溢的人

有些人显然才华横溢,但却在做一些从长远来看并不重要的事情。他们玩游戏,或者花时间辩论许可法的细微之处,或者在邮件列表中挑起争端。有时,他们会埋头于个人项目,除了他们自己,没有人从中受益。在正确的方向上给予一点鼓励,这种才华就可以转化为更多人的福祉。也许那个小的个人项目可以成为更大的开源社区的一部分。或者,他们可能正在个人网站上撰写出色的文章和操作指南,并且可以被鼓励将其技能融入到上游文档项目中,从而使更多的受众受益。

其他所有人

是的,其他所有人。因为你可能会选错人——你可能会把时间和精力投入到那些回报甚微的人身上。而且你可能会错过那些本可以从你的投入中受益的人。但最终,你投入的人越多,你就会有更好的机会让他们中的一个人回报你的努力。

如何做?

指导其实很简单。任何人都可以做到。以下是一些你可以做的事情,轻轻地推动别人去认识到他们的潜力。

分配具体的任务

你在试图在开源圈子中找到自己位置的人们那里最常听到的是:“我想做点什么,但我不知道从哪里开始。” 你能给他们的最好答案就是一个具体的任务。

OpenHatch 的人们长期以来一直鼓励项目明确识别“容易”的错误,并故意不修复它们,以便初学者有事可做。

我非常有意识地将会议计划分解为更小的任务,然后要求 Apache 社区开发邮件列表中的人们站出来承担其中一项小任务。这有一个直接的好处——我不必自己做了——和一个长期的好处——他们更愿意帮助完成下一个任务和下一个活动。另请参阅上面关于培养你的继任者的部分。这就是你找到这些人的方法。

特别重要的是,即使这很困难,也要愿意放弃一些你喜欢做的事情,给新人一个机会去做。

鼓励他们发言

鼓励人们向活动提交演讲。这是一个参与项目的好方法,因为它让关心项目的人立即获得关注。首先鼓励他们在当地的聚会或闪电演讲中发言五分钟。

顺便说一下,ApacheCon 的提案征集已开放

我还发现,我更多地了解一个主题的最佳方式是在活动中承诺就此主题发表演讲。这迫使我更深入地挖掘,思考可能会被问到的问题,并学习如何解决这些问题,这样我就不会在舞台上感到尴尬。

在这里,再次强调,有一些具体的建议是个好主意。如果你认为某人会成为一名优秀的演讲者,但他们说他们不知道该讲什么,请准备好提出一个主题甚至摘要。有些人只是需要一点额外的推动才能登上舞台,而给予一些具体的指导可能就是他们所需要的一切。确保如果他们接受了你的建议,你要去听他们的演讲,对他们所有的笑话都报以微笑,并在他们发现自己无法回答问题时拦截问题。然后,当他们完成演讲后,鼓励他们向下一个活动提交同一演讲的改进版本。对他们如何改进演讲提出具体建议。

鼓励

当然,只是鼓励。

如果你查看任何主要开源项目的统计数据,你会发现少数人贡献了大部分代码,而长尾效应则是一大批人只贡献了一两个补丁,然后就再也没有回来。在许多情况下,这是因为他们有一个抱怨,并修复了它。在其他情况下,这是因为他们的贡献没有得到任何人的认可。

一句简单的“感谢你让世界变得更美好”可能足以鼓励某人坚持贡献他们的第二个补丁,第三个补丁,以及第一百个补丁。

这是任何社区(开源或其他)成员都可以做的最简单,也是迄今为止最重要的事情,以鼓励社区发展。认可每个人的贡献。说谢谢。在你的 每周通讯 中提及新的贡献者,就像 Stefano 所做的那样。在列表外给他们发送一封私人电子邮件,感谢他们并鼓励他们再次这样做。

何时?

你什么时候应该指导?当然是现在。

不要等到你身居组织高位,或者身处权力职位。总会有人从你的指导中受益,即使他们比你年长或更有经验。你知道一些你可以传授的东西。

通过投资于其他一些人来扩大你对世界的影响力,永远不会太早(或太晚)。

Rich Bowen
Rich 是 AWS 的开源倡导者。他是 Apache 软件基金会的董事、成员和会议副总裁。

4 条评论

谢谢你,Rich,这是一篇很好的文章,很多人应该把它作为他们的屏幕背景。

很棒的文章!我自己对此深有体会。我在开源领域已经超过 11 年了,我仍然在这里的原因是因为我也曾有伟大的导师。导师们分享他们的知识,最重要的是,鼓励我。我想,正如你所写的那样,他们发现了我的激情,这促使我在我一直活跃(并且仍然活跃)的项目中做得越来越多。

我想你的文章应该对任何身居要职的人敲响警钟,让他们承担起指导的责任。我也应该如此。

虽然你没有具体写到这一点,但这也与社区管理有关。拥有社区管理,以及一位了解并具备这些指导技能的社区经理,将对社区大有裨益。

我可能会再次阅读你的文章,有很多东西可以学习。感谢分享!

在一个小得多的规模上,我的一个朋友在没有真正这样想的情况下指导了我。他懂 Linux,所以当我也开始接触 Linux 时,他的帮助和鼓励帮助我不断探索、尝试、破坏和学习。这就是 2003 年左右我开始接触 Linux 的原因。现在,我发现他来问我问题、更新和建议。

我试着为其他刚接触 Linux 的人做同样的事情。

我同意在一个项目中从哪里开始是一个大问题。加入并参与开源项目的想法似乎是一项艰巨的任务!

有一个指南不仅可以指导如何以及在哪里做出贡献的技术方面,甚至还可以指导社交方面和理解无法从 Wiki 页面学到的工作流程和期望,这似乎令人望而生畏。

重要的一部分是建立联系。找到导师并找到指导对象。

项目也可以指导新的贡献者。你的项目作为一个整体如何呈现自己,以及如何为新人进入这项技术和项目社区提供入口,对于帮助人们在更广泛的范围内迈出第一步至关重要。
这绝不意味着不需要个人指导——但个人导师的能力是有限的,无论你的社区有多大。让你的项目有一个友好的面孔也可以帮助新人迈出第一步——一旦他们这样做了,也许他们会在你的社区中找到一些新朋友和潜在的导师。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.