成功完成了4个月的开源项目(天网千帆),写了些感受 - 1

zihui 酷讯旅游网 CTO/CIO/技术总监  2004-10-05 02:29:26
因为最开始想写成论文的,后来又想写成随笔。最后发现越写越长,文风也有点乱,不知道该裁剪掉什么,所以现在的文章暴长(呵呵,其实贴在这里有点吓人),不过也非常详细。不知道大家对我们这次开源怎么看,觉得哪些部分还不错,觉得哪些是垃圾?

(不过由于上传不了图片,有些东西看不到啦。呵呵,刚刚上传时居然说我的帖子太长了,只好分开了)

【【开源尝试】】
  2004年4月至8月,作者有幸进行了一次开源开发,期间感受颇多,在此撰文向大家做一简单介绍我们开源项目的前前后后,并穿插很多开源相关的知识,以飨

读者。

【背景】
在教育网,尤其是高校的学生中,北大天网文件搜索引擎(旧称北大天网FTP搜索引擎)大概是使用频率最高的文件搜索引擎了。它是一个运行了多年的较

成熟的文件搜索引擎,每天有大约30万的查询量。我有幸从它的主要开发者陈华手中接过它,作为唯一的维护、开发人员。但系统从2000年

至今,经过多次的增删改,结构相当复杂,加之秉承了高校项目的一贯问题——文档不全、代码可读性较差,致使后续维护和开发相当困难。
  人力问题大概是首要的问题,我首先向负责老师申请学生和我共同开发,但由于实验室本身容量的限制,已经不可能有其他人和我共同工作了。或者说,封闭

开发这条道路已经被堵死了。
  不得已,我只有另择它途。如果从外面吸引人,传统的开发模式已经不适用了。很快,“开源”这条路映入了我的脑海,也许这是一条通往成功之路。

【开放源码项目的开发模式】
光有目标是不够的,还需要脚踏实地,我决定先学习前辈的经验,看看开放源码项目的具体开发模式是怎样的。
现有的成功的开放源码开发模式主要有:
1. 小型开源软件开发模式
2. 中型开源软件开发模式
  其特点为拥有3-5 名核心维护人员,参与开发的人员10人-40 人之间,采用CVS 进行代码管理,通过maillist/irc进行开发交流,有明确的开发计划和日程。

用户提出的错误报告和修正数量很多,并且有一些分支产生。
3. 完全封闭的商业Open Source软件
4. 比较封闭的大型Open Source软件的开发
5. 由商业软件转化过来的大型Open Source软件开发.
6. "独裁"式的大型Open Source软件的开发.
7. "民主"式的大型Open Source 软件的开发.
在了解、比较了各种开发模式后,考虑到自己项目的特点,决定采用“中型开源软件开发模式”,并根据我们自己的特征作适当调整。

【开源项目的风险】
  “风险是项目管理的最大敌人”。
  确定了开发模式,又了解到中国开源的现状,我决定首先把风险一一列出,防止项目半途夭折。
  和一般的项目相比,开源项目主要的风险有:
  人员交流:由于开发人员往往不在同一个办公室,因此交流会成为最大的障碍。网络的普及在一定程度上缓解了这个问题。“但同时也在一定程度上掩盖了交

流的风险”。
  工作时间:由于开源项目的开发人员都是志愿者,大家是在业余时间进行开发,因此开发时间很难保证,更要为中途被迫离开项目组的坏消息作准备。
  开发热情:没有资金、没有设备、没有薪水,甚至没有一杯水,完全凭借一腔热情,靠的住吗?这也是一个问号。
  开发人员的水平:在一般人眼中,开源项目的开发者,尤其是国外的开源项目的开发者,往往都是经验丰富,编码水平甚高,擅长Linux开发的高手,甚至是编

码的天才。但我们招的到这样的人吗?什么人愿意参与项目开发呢?
能找来志愿者吗?
究竟会不会有志愿者来参与我们的项目呢?我想起我曾经在较早的时候做过一次调查报告。调查分成7天,每天一个问题,最后一个问题是“你是否会作为

志愿者参与我们的项目,并选择何种工作?”这个问题当时共485人参与回答,结果为:
参与美工(9.1%),网页设计(16.2%),栏目管理(16。2%),编程(18。3%),运作与策划(29。9%),不参与(10。2%)
  但考虑到本次投票时长和前6次一样,(约24小时),但得到的票数却是最少的,对于这次减少的票数,初步分析是他们默认选择为“不参与”,因而没有投票

,因此我们将对上面的数据重新整理。上面几次投票的平均投票用户数为1281 人次,考虑到前一天投票数量已经有所降低(850 人),我们不妨假设这次为1000

人。而这1000 人中没有投票的用户的选取均为“不参与”,则数据重新整理为:
参与美工(4.5%),网页设计(8.1%),栏目管理(8。1%),编程(9。2%),运作与策划(15。0%),不参与(55。0%)
  可以看到,虽然多数人并不愿意成为志愿者(约55%),但仍有相当多的人愿意参与天网文件搜索引擎的开发、运作,考虑到天网每天仅30万的查询量,这个

是一个非常可观的数字了。由此看来,招募志愿者本身应该没有什么问题。
  究其原因,为什么会有这么多人愿意成为志愿者呢?我想可以归纳为以下三个原因。
1. 想参与开源项目的开发。如果我们招募志愿者,我们必定会以开源项目的方式运作,国内虽然成功的开源项目不多,但有热情的人员还是很多的。
2. 被天网本身吸引。这个不是大话,在教育网内,天网确实知名度较高。比如在我们的这次调查中,就有一个署名wb_fly@sohu.com的用户留言说“ 天网带给我

很多的方便和乐趣,我非常愿意为天网做事。”
3. 想通过这次开发工作提高自身。我不了解国外的同行持这种想法的人多不多,不过这确实是一个合情也合理的动机。

【人员招募方式】
  说干就干,确定了开发模式、分析了风险后,决定立即启动我们的开源项目的第一步工作:人员招募。
  开源项目的人员招募通常可以采用以下方法:
1. 从身边入手,拉上几个志同道合者。这个方法简单实用,在小的开源项目中还是不错的方法。而且同身边的人一同开发在交流合作上都较方便。但是项目较大

,人较多的话往往就不那么试用了。
2. 通过sourceforge等开源网站公布自己的项目计划,吸引开发者。如果自认为项目有足够的吸引力,不妨考虑完全通过网络开发,通过一些提供开源开发支持的

网站进行开发。在中国有“共创软件联盟”http://www.cosoft.org.cn/ 等网站。不过采用这种方法要确保你的项目有足够的吸引力,否则也许会发生过了一两个

月还没有人报名的尴尬事情。
3. 自己撑起一面大旗,招兵买马。不过项目已经有了足够的影响、不是从头做起,并且有足够信息的话,也完全可以亲自发布广告,招兵买马。
考虑到天网搜索引擎本身的的吸引力,我决定自己动手。
  首先我通过北大的一个linux社团进行一场类似“宣讲会”的报告。报告在2004年4月10日进行,在简要介绍了文件搜索引擎技术之后,重点介绍了新的开发计

划以及招募活动。报告本身很成功,吸引了相当多的听众。但是报名的人却少的可怜——只有人。现在分析,我认为听众多半是希望了解天网文件搜索引擎的技术

,而非希望参与项目开发。
  一招不灵,另换一招。我直接在我们的大本营——天网文件搜索引擎上面做了一个链接广告说明开源项目一事,并安排了约10天的报名时间。网上的报名果然

相当踊跃,而且各个省市、各种背景的人都有。很快就有超过100人报名,主要都是应聘开发人员。
  最终的招募情况是:核心开发人员5人,美工1人,项目顾问2人,法律顾问1人,由于对于一般开发人员的人数需求和工作内容都尚未明确,因此没有确定一般

开发人员的名单。实际招募开发人员还是以学生为主。
  在人员招募的过程中,我首先招募了项目顾问,然后才开始开发人员的选取。考虑到前面的风险分析,为了规避“人员交流”的风险,我们重点招募了能够见

面的北大学生。最终五名核心开发人员的分配为:北大学生3名,北京学生1名,外地学生1名。这样,即使在最坏的情况下:即如果只有能够当面交流的开发人员参

与了开发,仍然有60%的开发人员的保证。招募的五名核心开发人员对搜索引擎的了解都非常有限,技术水平属于中上。
  在后续的开发中,随着具体开发工作的需要,又有多名开发人员加入,最多时整个项目组达到了16人。
...全文
387 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wb1414 2004-10-13
继续
回复
aawolf 2004-10-12
继续。
回复
arfayr 2004-10-11
继续a...
回复
cita 2004-10-11
实用!
回复
mycsdnid 2004-10-11
up!
回复
老伍在此 2004-10-09
关注
回复
happyasen 2004-10-06
学习
回复
flyingbug 2004-10-06
我当初看到了这个项目的招募信息,在你们的网站上
不过那时由于工作太紧张所以没有详细询问
不知道现在你们的项目怎么样了?
回复
发动态
发帖子
研发管理
创建于2007-08-27

1180

社区成员

软件工程/管理 管理版
申请成为版主
社区公告
暂无公告