【IT168 技术文章】
开放源码这一开发模式是近几年在国际上非常流行的一种软件开发方式,相信很多人已经耳熟能详了,但其实在国内亲身参与过的人并不多,而且很多人认为这种在国际上很成功的开发模式,在中国有些“水土不服”。本文作者结合自己的亲身实践,对开源项目的管理方式提出了很多值得参考的建议。
在中国,成功的开放源码项目并不多,如果再去除那些以传统形式开发成功后再公开源码的项目,纯粹的开源项目就更是屈指可数了。笔者刚刚组织了一个历时近4个月的开源开发项目——天网千帆开放源码文件搜索引擎项目,该项目运作比较成功。通过这次尝试,笔者对开源开发这一模式有一些认识和感受,并总结了一些在实践中得到的经验,希望对其他想进行开源开发的读者有所帮助。
前期准备
一般说来,每个项目都会有一个项目的提出者。在实际中项目提出者往往也会成为整个项目的中心人物甚至负责人。在开始开源开发之前有必要进行一些前期的准备。主要包括对项目本身的评估和对开源开发的一些基本知识的了解。其中对项目本身的评估包括: 项目的规模、对开发者的技能和人数的要求、项目的预期开发时间,个人能够付出的时间和精力等。
在前期准备中,容易忽视的一点就是组织者对自己的把握。尽管开源项目有很多志愿者的协助,但实践中,组织者本人往往是项目中最重要的一个人物,往往也会花费较多的精力,因此有必要在项目开始前确认自己是否有足够的技能和精力来运作这个项目,不打无准备之仗。
在这个阶段最重要的一点就是明确自己提出的项目是否适合进行开源开发,因为并不是任何项目都适合进行开源开发的。其次就是明确需要的人力、物力和时间等因素。
人员招募
一般说来,开源项目的人员招募通常可以采用以下方法: 从身边入手,拉上几个志同道合者; 或者在开源项目网站上注册自己的项目计划,吸引开发者; 也可以通过自己的网站或其他活动进行宣传。
其中第一种方法比较常见,在小的开源项目中还是不错的方法。同身边的人一同开发在交流合作上都比较方便。但是如果项目较大、需要的开发人员较多的话,往往就不能满足要求了。如果采用第二种方法的话,最好考虑sourceforge等知名度较大的网站,在中国有“共创软件联盟”www.cosoft.org.cn) 等网站。不过采用这种方法一定要确保项目有足够的吸引力,在项目介绍上写清楚自己对整个项目的规划、对人员的要求,否则也许会发生过了一两个月还没有人报名的尴尬局面。如果项目不是从第一个版本开始开发,并且早期版本已经有一定的影响力的话,也可以采用第三种方法,自己撑起一面大旗,招兵买马。
国内做过志愿者的开发人员并不多,是不是因为大家都没有兴趣呢?笔者曾经做过一次调查,询问北大天网的用户是否愿意参与我们项目的开发,共485人参与了本次调查,结果如图1所示。可以看到,虽然目前国内有开源开发经历的人并不多,但有热情、想作为志愿者参与开发与运作的人还是相当多的。
在天网千帆开放源码文件搜索引擎项目中,我们采用了第三种招募方法。首先进行了一场类似“宣讲会”的报告,然后在我们的网站上发布了一个广告。由于我们的网站访问量较大,报名的人数也比较多,10天之后就有100余人报名。
如果报名人较多,有必要筛选一下。筛选时要注意,除了技术之外,开发人员的热情和时间也是非常重要的因素。另外,在很多时候,尽管有很多报名者,我们依然很难找到理想的技术人员。但其实完全不必为此担忧,技术都是很相近的,只要找到懂相关技术的人就可以。比如在我们这次开发项目中,多数人对要开发的系统都缺乏经验,但项目依然取得了成功。
下面谈谈在人员招募的过程应当注意的两个问题,主要针对初次涉足开源开发项目者。
首先,如果可能的话,应当确保团队里至少半数志愿者能够进行一周一次的面对面交流。虽然我们可以通过网络与远在地球另一端的开发者进行实时交流,但如果绝大多数开发人员彼此都不能见面的话,沟通的代价和难度都将远远超过我们的预期。
其次,在我们的印象中,国外的开源项目的开发者往往是一些技术精英,因此我们通常也希望招募一些技术高手。不过在实践中,一方面这样的高手很难找到,另一方面大家也大可不必如此在意技术水平。因为国内整体开发确实同国外还存在一定的差距,另外如果一个团队里有一半高手,一半水平中庸,技术水平相差过于悬殊的话,反而不利于开发。