发表于2008-02-18 18:13:12 +0800

最近发生了很多事情,让我不得不思考一下我现在和接下来需要做的事情。

在过去的2007年中,开源软件开发方面上的两件事情使我受益非浅。

那是在2007年7月初的时候,在此之前我没有想到CXF的用户邮件组会一下子活跃很多,记得当时我做过一个小小的统计,基本上是平均一个小时就有一封用户的来信,询问有关CXF使用问题。一下子回复用户的来信就成为了我每天日常工作的一部分。在回答用户的问题的过程中,我渐渐感觉开源项目社区(Community)的重要性。

一直以来我都认为好的软件不是工程师设计出来的,而是用户们使用出来的。作为Coder你会根据需求设计代码,但是如果你写的软件没有人用,那你将因为无法得到及时的反馈,而不可能进一部分改进你的代码,或者是修正你设计中的缺陷。

有人说开源软件和商业软件比,因为缺乏测试和支持,其软件质量让我们不能将开源软件应用到生产系统中。对此,我还是要用上面我说的那句话来回答,软件是使用出来的,而不是设计出来的。

大量用户们的使用,给你写出的软件注入了无限的活力。一些用户会不断测试你的刚写出的代码;一些用户会帮助你完善文档;一些用户会跟踪你的代码并为他所遇到的问题打上补丁。同时这一切将会在你刚提交的代码后的几天之内发生。

试想一下,如果你现在在开发一个商业软件,你也许会在提交代码后的两个礼拜中,无法得到你所写代码的直接反馈。或许当你在即将忘记你所写代码的某个时候,突然接到了用户或者是测试人员报过来的一个Bug,这个时候你对你所写的软件质量是一个什么样的感受。

这也是我为什么愿意投入很多精力来回复开源社区用户们提问以及参与社区建设的重要原因之一。

如果说成为CXF Committer是占了Initial Committer的便宜(不需要走Apache的Committer惯用流程),那我成为Camel的Committer可谓是经历了进半年的考察期。 起初接触Camel是因为James想将CXF集成进Camel中,而我当时对CXF有一定了解同时也想多参与一些Apache的项目开发,我认为成为Committer只需要提交3个以上patch就可以了。

按照DanKlup 在CXF中写的Getting involved 中的提示,要想成为 Apache 项目的Committer,你熟悉ASF的工作方式,同时一个重要内容是你需要通过不断用提交patch的方式骚扰项目中的其他Committer,让他们厌烦帮你打patch,为你挣取足够的获取Committer权力的信用。

由于当时我还投入了部分精力在CXF项目中,在半年中打的patch不到10个,估计没有突破James对Committer的要求,所有迟迟没有获得Camel的Committer权限。好在两个礼拜前我终于拿到Camel的 committer权限,也让我再次体验了一下成为 Apache committer的快乐。