文/Charles Babcock译/朱筱丹 商业机构需要懂得如何从开源项目的领导团队、社区、创新程度等方面一窥端倪。如果做出了错误的选择,就会付出惨重的代价。 戴尔公司(Dell)决定在其部分消费类台式机和笔记本电脑上预装Ubuntu 7.04,这一方面标志着主流消费者将有机会使用开源操作系统,另一方面,这一Linux的新成员大展风采的时机已经开临。在数以百万计的开源项目中,像Ubuntu这样能够崭露头脚的毕竟凤毛麟角,而在每一个成功者背后,都有太多类似的其他开源项目最终遭致失败而湮没。 对许多正在扩大开源项目使用范围的公司而言,这是个两难的矛盾。因此,大企业的开发人员和IT公司必须能更好地甄别开源赢家,避免失败。错误的选择可能使你的公司掉进一个黑洞,徒然地面对一堆的技术支持问题和过时软件。 有望在下一波浪潮里取得成功的开源项目包括Mule企业服务总线平台、Alfresco内容管理系统和用于Java应用的Spring框架。但其他的139,831个项目又会怎样呢? 其中一个原本很有潜力的泡沫项目就是OpenVista,这是一款管理医疗记录和卫生保健业务的软件。OpenVista有几个强项:良好的代码基础、急迫的用户需求、还有希望把它推向商业化的公司。但领导层的意见分歧会严重损害开源项目,而在正规的软件公司里,却完全有可能避免此类事件发生。 OpenVista在去年6月6日向SourceForge提交了一次代码。这看来很平常,因为资助OpenVista进行商业化的Medsphere公司已多次承诺要发布代码。但事情很快峰回路转。3个星期后,Medsphere指控联合创始人和首席技术官(CTO)史蒂夫·史瑞夫(Steve Shreeve)要对那次代码发布承担责任。 在提交给加利福尼亚州橘子郡(Orange County)中级法院的诉状中,Medsphere指控史瑞夫和他的哥哥,时任Medsphere首席医学信息官(Chief Medical Officer)的斯科特(Scott),违反了他们作为董事的诚信义务、破坏了保密协定,使公司招致5,000万美元的损失。首席执行官(CEO)肯·凯泽(Ken Kizer)和董事会成员声称史瑞夫兄弟应该在提交OpenVista代码前召开会议,检讨哪些代码可以发布。 史蒂夫·史瑞夫回应说之前已经有过两次未经CEO或董事会讨论发布的源代码。他生气地表示“我是公司最大的股东。”该事件之后,6月史瑞夫兄弟被革职,他们表示自己采取的措施只是开源项目发展过程中的必需一环,就跟打地基类似。 凯泽强调官司“与开源代码无关。这是公司的治理问题。”他认为史瑞夫兄弟和他闹翻后,企图用开源掩饰他们想另起炉灶的企图。史蒂夫·史瑞夫否认了这种动机。 史瑞夫兄弟离开后,Medsphere又再次计划向SourceForge发布代码。凯泽期望“这将是医疗卫生界的一件大事,OpenVista会吸引用户并形成社区。” 但史蒂夫·史瑞夫认为Medsphere已经断了自己的后路,毁了那份无形的信任,只有凭着这种信任,受聘的贡献者、志愿的程序员或者感兴趣的用户才会为其提供自己宝贵的意见。 “开源程序员怎么可能对参与这样的项目还保有丝毫的信心呢?”史瑞夫质问道,“他们怎么能一边信誓旦旦地说他们公开了代码,一边又因为我公开了代码而控告我?” 开源代码项目需要有技巧的领导层、短线的直接沟通和组员间的信任,而OpenVista项目从进入开源市场之日起就是一条腿走路,变得全无用武之力。但是这还不是商业机构需要评估开源项目的唯一要素。回看那些成功的开源项目,观察它们的领头人和实现这些项目的成功者的见地,我们可以一起揭示那些用于评估开源项目是否具有成功潜力的共同准则和度量法则。 如何选择 托尼·华塞曼(Tony Wasserman)认为成功的要素非常清晰明了,他甚至可以为这些要素编上号。华塞曼是卡内基-梅隆西部校区(Carnegie Mellon West,卡内基-梅隆大学在硅谷的分部)的软件管理项目总裁,他们正在开发一个适用于商业的开源代码项目评估服务。SpikeSource(一套开源代码软件包集成商)、出版商奥莱利媒体公司(O'Reilly Media)和英特尔公司(Intel)都在资助该项目。 这个开源代码项目评估服务收集公众对开源项目的反馈评估。华塞曼表示以后他们会提供软件工具,自动分析从开源站点收集的统计信息,帮助预测这些项目的成功可能性:如开发人员与核心开发人员的数量、发布的频率、已获解答和未解答的提问数、跟踪与修复的缺陷数量。这些统计数据经决策框架处理后,能提供对开源项目的排名列表。 目前已经有一些这样的自动软件,其中包括FLOSSmole(Free/Libre Open Source Software Mole),它可以自动地挖掘开源项目的页面浏览数、下载数、下载的带宽占用和评论数等数据。 这些工具都能派上用场,但随着开源项目在Linux操作系统、Apache网络服务器之外逐渐创造出更广袤的天地,IT行家还是需要自己做出判断。 亚马逊公司(Amazon)、谷歌公司(Google,下称谷歌)、哈福特保险公司(Hartford Insurance)和旅游预订公司Sabre控股公司就是一些因为早期采用开源项目而后收获甚丰的公司。例如Sabre将MySQL用于为消费者提供快速的旅游信息服务。现在,愿意在开源项目上一试自己运气的公司越来越多了。 社会网络站点Hi5网络公司(Hi5 Networks)每个月有1,800万独立访问量,该公司就用一套名为Hyperic HQ的新开源项目管理自己基于Linux的系统。作为一家只有35名员工的小公司,Hi5网络公司的IT人员并不多,也从未购买过商业系统管理产品,如BMC Patrol或CA Unicenter。 Hi5网络公司以前用过另外一套开源代码Big Brother,但觉得Hyperic HQ的功能更齐全,如在系统性能低于临界值时报警并提供对历史性能数据的分析。作为Apache、Linux和其他开源项目PostgreSQL数据库的使用者,CTO阿卡什·格尔格(Akash Garg)倾向于“给开源系统管理软件一个机会。”对此他的解释和其他许多使用开源软件的公司一样。“很简单,它便宜多了。”这就是格尔格的答案。 Hi5网络公司最初通过提交问题,试探Hyperic开源社区的服务质量,并没有获得满意的结果。然后他们与Hyperic公司的技术支持组建立了直接联系,解决了支持不足的问题。作为该开源项目背后的公司,Hyperic急切地与新项目的早期用户建立合作关系。 Hyperic软件从去年夏天成为开源项目以来,已被下载了2.6万次;Hyperic还推出了每年收取500美元服务费的商业版。 社区是项目的基础 许多人认为开源“社区”就是一群不拿工资、完全凭兴趣编程的开发人员,但这并不是大部分项目背后的驱动力。 一般而言,只有一小部分人有权利修改或提交源代码。其他开发人员把代码提交给核心开发人员。但评估一个项目是否健康发展的要素是规模和动机、小组成员苦心钻研代码的程度和定位修复错误缺陷的热忱,以及项目对这些会如何反馈。例如,Hi5网络公司CEO贾维尔·索特罗(Javier Soltero)表示,Hyperic项目开发小组会花四分之一的时间参与用户论坛讨论。 保持强有力的社区也将是Apache Harmony项目(下称Harmony项目)面临的挑战,它是一个用于生成Java开源版本的项目。尽管Java的所有权属于太阳计算机系统公司(Sun),而一直希望Java成为开放式系统的国际商业机器公司(IBM)是这个项目的主要支持者。但去年11月Sun把Java代码也开源了,这对Harmony项目来说简直是釜底抽薪。 公司总裁格尔·马格努斯(Geir Magnusson)表示Harmony项目将继续前行,但既然网上已经有开源的Java,那Harmony项目的社区如何能吸引到一批忠诚的用户呢? 与此相反,Java开源应用服务器JBoss项目却取得了成功,以致几乎再没有空间留给同类型的项目了。去年4月以3,500万美元购并JBoss项目之前,红帽公司(RedHat,下称红帽)说它会发布和提交在法国的ObjectWeb Jonas项目。但是直到现在这个Jonas项目即使在红帽内部也无人知晓。 最终用户社区的投票说明了一切:Jonas项目在欧洲还有少量用户,但在北美已奄奄一息了。另外,IBM购并了Gluecode公司,因为它的开源软件包产品包括了一款Apache旗下富有创意的Geronimo应用服务器项目。Geronimo项目尽管身后有IBM的支持,但该项目能否借JBoss项目之势觉醒仍是未知数。 Harmony项目和Jonas项目有一点相同:他们吸引的不是草根开发者或有核心需求的用户支持,而是上层公司的支持,如IBM和红帽,这些公司都有自己的计划表。当优先级随上层公司而改变的同时,来自用户的支持自然也减弱了。 名为Fedora Legacy的Linux项目是另一个没有热情用户支持的项目。Linux狂热支持者们发起Fedora Legacy项目的初衷是为老版本的红帽Fedora Linux软件提供安全和错误补丁。不幸的是主流社区却没有分享开发者对“传统”Linux的热忱,这个项目去年年底因缺乏支持而终止。 Apache项目创始人布赖恩·贝伦多夫(Brian Behlendorf)回忆道,活跃的社区是Apache项目在上世纪90年代中有别于其他免费项目的一个特征,那时候IT经理们还普遍对免费软件持谨慎态度。 Apache项目站点并没有随意堆放无数的免费代码,Apache.org的潜在商业客户会发现相关的代码都打着开发过程的烙印,其中关于最新修改的注释标注得清清楚楚。他表示:“在Apache社区可以非常容易地提出问题、加入邮件列表、或是查看问题解答的帖子。” 贝伦多夫指的是项目透明度,这正是任何有活力的开源项目的标志。社区对于活力和透明度的要求不亚于对于社区规模的渴望。论坛里无数的讨论帖、活跃的正面和负面意见,使项目决策有了更清晰的依据。这是开源社区最重要的立身之本。哈福特财产保险与意外保险IT集团(Hartford's Property and Casualty IT Group)首席安全架构师詹姆士·麦克戈文(James McGovern)表示:“在公司,你很难诚实地表达观点。但公司之外,人们可能诚实得近乎残酷。” 一个健康的社区也会建立自己的政策,压制过火行为,如人身攻击等。健壮的论坛和邮件列表定位应该是项目发展的大方向,不应纠缠于个人观点上的差异。这就是领导能力对项目的影响所在。 领导者:谦卑的独裁者 贝伦多夫就是开源项目里典型的成功领导者。 这位言谈温和的程序员在编程上并不算特别有天赋;在接手Apache项目时,他甚至还没完成在美国加州大学伯克利分校(University of California, Berkeley)的计算机科学学位。结果Apache成了开源项目的成功榜样,现在贝伦多夫领导着名为Subversion的版本控制系统。 曾设计过Organic Online网站的贝伦多夫对面向哪些人该提怎样的问题非常擅长—例如如何提高简陋的美国国家超级计算应用中心(NCSA)网站服务器(Apache前身)的性能,并且非常善于从各种回复中发掘闪光点,凭着个人智慧和坚定意志,决定哪些事该做,哪些该放弃。他还经常在业界大会和公众论坛里宣传Apache的优势。 MySQL、Linux和其他成功开源项目的成功非常一致:这些项目身后都有一个像李纳斯·托沃兹(Linus Torvalds)那样的灵魂人物,一个善意的独裁者,他能认可他人的工作价值。在JBoss项目,这个人叫弗勒里(Fleury)。在MySQL是两位程序员,蒙蒂·维德纽斯(Monty Widenius)和大卫·艾克斯马克(David Axmark),他们开发了早期版本的MySQL,并选择了温和的马腾·米科斯(Marten Mickos)担任CEO。罗斯·梅森(Ross Mason)是Mule项目无可争议的开发领导,这个适用于金融机构的企业服务总线平台也日渐走强。梅森还是MuleSource的创始人。创建于1992年的Samba项目,提供跨Windows、Unix和Linux系统的文件和打印功能,它的领导人是具有灵活外交手腕又有决断力的杰里米·艾利森(Jeremy Allison)。 任何成功项目都需要经过长时间的孕育,荣誉也会姗姗来迟。贝伦多夫指出,Apache花了4年时间,而Subversion用了5年的辛苦耕耘。在开始阶段,无论Apache还是Subversion项目,都没把握最后能获得成功。这就需要那位善意的独裁者带领整个团队踏上漫漫征途,制订规则,分配任务,表扬奖赏并弥合失败引发的创伤。 在动荡的Medsphere里CEO凯泽因为源代码提交的事而与董事局成员、前CEO拉里·奥古斯丁(Larry Augustin)结成联盟,一起与史蒂夫·史瑞夫争夺OpenVista的领导权。史蒂夫在毕业前离开医学院,然后成为Medsphere的创始CEO,他后来转为CTO职务。 史蒂夫·史瑞夫言谈之间暗示,尽管他已尽最大努力,但奥古斯丁和凯泽都把项目的延误归咎于他。项目初期需要漫长的时间,再加上无名无利,两者加在一起很容易引起压力最后发展成内耗混战。Medsphere的OpenVista就需要一个善意的独裁者来舒缓这种压力。 Spring框架项目的灵魂人物是创始人罗德·乔纳森(Rod Johnson),他是成功开源项目的另一座丰碑:甚至还在写代码的初级阶段,他就成了该项目的公众代言人,充分展现了这个项目的各种理念。 关于创新:重复无益 许多开源项目只是单纯复制和商业化现有软件的功能。有些人认为开源项目没有创新性,它们往往只是抄袭,或者最多是对现有商业产品的优化。但最好的开源项目都不缺乏创新性—表现形式也许含蓄,也许优雅,但最重要的是—它们出现在合适的时机。 JBoss把面向方面(Aspect-Oriented)编程的概念融入了应用服务器。这个举措后面的考虑是:一些在应用中反复重现的东西,如身份管理和安全,应该成为编程的一个“方面”而不是在程序不同部分不断变形重复。因此JBoss发明了一种非常有效的标签方法,以致Java Community Process组织(Java标准制定组织)也效仿这种方法,把它融入到Java架构中。现在它已在Java的方方面面得到应用,以简化各种复杂问题,提供更简单的替代方式。 MySQL起初只是轻量型数据库,但可作为速度卓越的只读数据库,为大访问量环境下的网页应用服务,因此很多初创公司都选用了它。MySQL在缩小与其他数据库之间技术差距的同时,仍然保持着速度优势。在最近举行的MySQL大会上,MySQL AB公司和IBM共同宣布,MySQL将运行于IBM的i50S上,后者是System i系列服务器(以前的AS/400)的操作系统。 “Linux是某个版本的Unix。”这说法一点没错,但它的创新在于,这种经过裁剪的Unix既适合于普通商用硬件又无损Unix操作系统的健壮特性。但当时没有一家Unix厂商抓住这个概念。 Sun早期用于x86平台的Solaris并不健全也不能担当重任,以致李纳斯·托沃兹乘虚而入。Linux的能量来自于它对廉价硬件平台性能的全面压榨而不是丢盔弃甲举械投降。 Apache可以非常便捷地结合PHP插件扩展,并且把它们与各种资源相连接。 Apache的设计目标就是大容量的访问需求。简而言之,它就是一种在合适时机出现的合适创新。 根据英国互联网统计分析公司Netcraft公司的数据显示,Apache现在已占到了互联网上活跃站点份额的60%,力压只占31%的微软公司(Microsoft,下称微软)互联网信息服务器(IIS)。 当IE浏览器停步不前时,火狐浏览器(Firefox)通过提高浏览体验获得市场份额,而与之形成对比的是OpenOffice已经与微软的Office办公套件对抗多年却完全没有取得进展。如果开源软件不能在某方面出类拔萃,如果它只是商业产品的简单模仿,那别指望它能出人头地。 关于时机:需要一些运气 说到下一波开源项目赢家,Subversion能跻身前列的其中一个原因是靠运气。 因为谷歌的Google.Code开源项目站点用它作为版本控制系统。Subversion因此迅速取代它的开源前辈CVS系统,此外它还为微软和IBM的版本控制软件提供了网页友好的工作方式。
|