Apache基金会副总裁:我从开源中学到的最重要的事
我从事Apache的http服务端工作已经将近20年了。写过9本关于httpd的书,在超过50次的会议上发表演讲,是Apache软件基金会的董事会的一名执行副总裁,负责在南美和欧洲的Apache的官方会议的开展。
写这篇文章,是因为受到一些人的鼓励,他们希望我能写一些我了解的,擅长的并且有点深度的东西,当然,我也很乐意这样做。
坦白来说,在专业上和个人成长两方面获得的那些指导,是我取得今日成就的决定性因素。
在过去的20年中帮助过我和指导过我的那些人,我都深怀感激。在最近的5年里,我也会主动对别人提供帮助,将这份幸运传递下去。无论他们是否意识到我所做的事情的重要性,我都清楚地明白这是非常值得的。
(图片来源:opensource.com)
为什么?
有三个主要的原因,让我觉得这样的指导是如此重要。
提高你的影响力
1997年,David Pitts正在为Sams出版社写一本关于红帽Linux的书。他问我是否可以在关于Per和CGI的章节提供帮助,因此彼时我碰巧在做这方面的工作。幸运的是,这本书现在已经绝版了,因为那时我的写作还真是一团糟,但是这促使我开始创作,并且现在也有几本书可以让我为之自豪。
1998年,我对Apache的web服务器的文档有些不满,然后Jim Jagielshi对我说,与其抱怨还不如做些什么去改善下。于是我开始提交一些文档的补丁,在2000年9月,我成为了第一个没有向Apache项目提交过任何代码,却有了提交权限的人。
2000年,当ApacheCon第一次启动时,Ken Coar鼓励我发表一个演讲。当时,我觉得并没有什么要说的,而且之前也从来没有在公开场合发表过演讲,但是他不停地鼓励我。然后,我就真的去做了一个演讲。这成为了我演讲生涯的开始,现在我的办公室里都堆满了各种会议勋章,有许多我都还不认识。
在我的开源生涯中,那些给予我指导和帮助的人里,有许多知名的人,他们有(但不限于) Casey West , Michael Schwern , Paul Dupree , Ken Rietz , Elizabeth Naramore , Wes Morgan , Sally Khudairi , Earle Bowen ,还有其他的许多人,很遗憾在这篇文章里不能都写出来。
我提到这些人可不是要自夸,而是想说明,这些人通过对我的投资,扩大了他们自己的影响力。或许因为他们没有时间、资源或者只是没有途径而不能去亲自完成的事情却通过我做到了。
给自己提供一条后路
有一天,你不想继续做这个项目,想离开这个项目去尝试一些新的东西。
最近,一个非常聪明的同事说,首先要思考的就是,假定一项重要的工作,需要特定的人才能代替你。终有一天,你可能会离开那个位置,除非你已经一步步的做到这项工作可以没有你,否则你之前的努力就只能付诸东流了。
当然,会有一些人,尽量让自己变得不可替代。他们通过隐瞒信息,来确保每件事情都要依赖于他们才能完成,也会压制那些可能会替代他们的人。一些人是有意为之,也有一些是本能地如此做。但是,通过积极的寻找自己的替代者,你也可以创造一种开放的文化,而这样,人们也不愿意让你走,所以这样岂不是达到了目标了!(写文档也是一项巨大的工作,会有另外一篇文章介绍)
通过去帮助指导你的“替代者”,就可以有人帮助你分担一些压力。你也可以委托一些事情让他们来完成。这样你就可以有更多的时间思考未来,而不是总去维护那些只有你能解决的问题。
在时机成熟的时候,你就可以放心离开,休息一下,去开阔一下自己的眼界。
在你走后,留下一些有影响力的东西
开源其实也就是代码。代码可以被重构,拆分和删除。当你离开了项目后,你的影响力会随着你的贡献逐渐分崩离析而减小。
然而,你去指导别人花费的时间却会延续你的存在,会延伸到其他的项目,行业,甚至在接下来的十年都持续存在着。每一次你对别人的一项投资就是扩展了自己的直接影响力。
哪些人值得你去投资?
如果你周围有很多这样的人,如何选择或许会有些困难。或许,在你的团队中,有五个之多的人可以成为你的“继承者”。无论哪种情况,下面是一些如何选择的方法。
有激情的人
寻找那些可以连续奋战两天去解决不得不解决的问题的人,那些只有当每一个人认为问题已经解决了的时候才停止工作的人,那些坚持你不在意的意义和细节性的问题的人。
这类人是有激情的人,会值得你花时间,因为那些激情在适当的时候可以转化成不可阻止的动力。
在幕后默默工作的人
在任何一个项目中,总会有一些人喜欢站在前面,让自己受众人瞩目。但也有一些人在幕后辛勤工作,只为让事情顺利运转。相比于那些出名之类的东西,他们更在意事情能否照常运转。
这些人极有可能成为最好的领导。正如伟大领袖Nelson Mandela在他的自传《Long Walk to Freedom 》说的:
“一个领导[...]就像是一个牧羊人。他呆在人群的后面,让最机智敏捷的人走在最前面,其他人跟随着,却不会意识到正是他在后面指引着方向。”
那些更愿意在幕后工作的人正是这一类人,因为,即使作为领导,他们也会专注于结果,而不是赢得多少赞誉。
聪明的人
有一些人很聪明,但由于长期从事自己没有兴趣的事情。因此他们可能会去玩游戏,或者花时间去打破一些规则,或者在邮件列表里提出一些话题。也会做一些个人的项目,这也仅仅是因为自己喜欢。如果能够获得正确方向上的指引,这些聪明才智就可以为更多人带来好处。可能他们的小项目会成为某个大项目的一部分。可能他们正在为一个个人网站写一个指导手册,这样就可以鼓励他们把这项技能应用的一个主流项目的文档中去,让更多的人受益。
其他的每一个人
是的,每一个人。因为你没有什么可以选的——你要把时间和经历投入到那些看起来带给你很少回报的人。可能有些人只是让你白费力气。但是最后,你选择的人越多,在将来就有更大的受益可能性。
如何做?
指导别人是很容易的。任何人都可以做到。下面是一些你可以很容易辨别出有这方面潜力的人的方法。
分配具体的任务
在想进入开源圈子的人那里你最常听到的一句话就就是:“我不知道该做什么,从哪里开始。”你可以回答的最好的答案就是:“一项具体的任务。”
在OpenHatch里,就会有一些简单的特意不修复的漏洞,好让那些初次加入的人去解决。
我会经常有意地将会议计划分成小块的任务,然后在邮件列表里寻找一些人来完成这些小任务。这会有一个直接的好处——我不用自己去做了——从长远来说——在以后,他们也会更愿意参与。回看下上面的内容,就是如何找到你需要的人。
即使很难, 跳过那些你有兴趣做的小事情,让新人来做,是非常重要的。
鼓励他们演讲
鼓励人们发表自己的意见。这是一个很好的参与到项目中的方法,因为这能使人直观地感觉到别人的在乎。刚开始可以只是在本地的会议或者小的讨论会中发表一个五分钟的演讲。
顺便说一下,给ApacheCon提供建议的电话是开放的。
我也发现,解决一个新的议题的最好的方法,就是在一个活动中去讨论,这会促使我去深度的挖掘,思考可能会被问到的问题,如何去解决。这样我就可以在台上避免此类的尴尬了。
再次说下, 能够提出具体的建议是最好的。如果你认为谁能成为一个好的演讲者,但是他们不知道说什么,只是准备了一些主题,甚至摘要。这些人仅仅是需要一点鼓励就可以站在台上了。他们需要的仅仅是一个方向,如果他们听取了你建议,上了台,要确保你去参加了那次演讲,对他们讲的笑话大笑,打断那些回答不了的问题。然后,结束时,鼓励他们对这次主题演讲做一个更深入的版本,好在下次活动时使用。对他们的演讲姿势和技巧也给出些具体的建议。
鼓励
鼓励,当然,就只是鼓励。
如果你看过主要的开源项目的统计,就会发现只是有几个人是主要的代码提交者,然后后面的人就只是贡献了一两次,就没再回来过了。这种情况的主要原因就是他们觉得,问题修复了,但是他们的贡献却没有被重视过。
一句简单的“感谢你让世界变得更美好”或许就是他们第二次,第三次,甚至第一百次贡献的动力。
这是最容易的,长远来看也是最重要的事情,社区的任何一个成员——开源的或者其他的——可以有利于社区成长。对每一个成员的贡献,表示感谢。像Stefano那样在每周更新的信件中提到新的贡献者,给他们发送一封私人邮件鼓励他们继续下去。
什么时候开始?
你应该什么时候开始呢?好吧,当然,是现在。
不要想着等你成为组织的领导人,或者在有权力的位置上时。总会有一些人受益于你的指导,即使他们比你更年长或者更有经验。你知道你可以的。
任何时候都不会太早(或者太晚)去开始通过投资别人来扩大你对这个世界的影响力。