OSI 的定义:Open source is a development method for software that harnesses the power of distributed peer review and transparency of process. The promise of open source is better quality, higher reliability, more flexibility, lower cost, and an end to predatory vendor lock-in.
简单说,开源是一种开发方法,源代码开放和自由下载使用只是为实现这种革命性的协作方式降低门槛的一个手段,而不是目的。对大规模协作的参与者降低门槛是一个开源项目组织者最重要的工作内容,也是关乎一个项目成败的关键所在。
那么,吸引谁来参与,才能达到开源项目和参与者的双赢,这是首先要明确的问题。窃以为,目标应是那些专家级的软件玩家。从软件功能角度说,是那些专家级用户;从技术角度说,是那些开发牛人。
举 例来说,两个著名的开源软件项目Linux和Apache,为什么他们引领了开源软件的发展?因为参与这两个项目的人基本上是公认的计算机专 家,linux的用户群定位在服务器系统管理员,Apache的用户群定位在网络管理员。这些人不仅对现有的同类商业系统熟悉而且自身习惯于用编程方式解 决问题。 这样的群体才会有高质量的参与。包括对软件功能的蓝图确定,对软件Bug的定位和描述,提交patch的代码。有了这种高质量的参与者协作,才造就了开源软件的成功。
国内开源发展只叫好不叫座,感觉根源在于对这个核心问题认识不清,在宣传和引导的过程中没有充分针对性地关注特定群体,而是撒大网。可以说,100个初级用户都不如一个contributor意义重大。
同 样是linux,Redhat的社区里话题和代码的质量远高于ylmf。前者的受众关注的是系统运行的稳定性和安全性,后者的受众关注的是如何替代 windows完成看电影、听歌、打游戏这些低层次的需求。这样开源项目关注的重点也会随之调整,或者成为那什么,或者成为那啥。
回到我个人关注的开源ERP类软件,各个开源ERP软件的兴衰成败也都源于其受众定位。
2005 年8月,我很偶然地接触了开源。我本身是一个商业ERP软件的二次开发从业者,遗憾的是这个软件用的不是Java。而我断断续续在此之前学了3年 Java,到了可以给别人讲课的程度。所以我很想找一个用java开发的erp软件研究学习一下,结合我的这两方面特长。于是找到compiere,发现 我也有参与的自由。 遗憾的是,Compiere有个门槛,中文包要购买的。对于一个爱国人士,这不可接受,为什么美国人用的英文界面是免费的????可笑的理由对吧,这就是一个初级玩家抛弃Compiere的真实理由。 即 使这样,我在Compiere中国的qq群里还是只用了半天就混成了管理员。因为这个群里非常缺乏ERP专家,95%都是程序员出身,而且不是专职ERP 程序员,所以往往过了安装和汉化的两道门槛,就没有下一步的学习计划了,compiere的技术架构是唯一话题。但我毕竟是没摸过Compiere的伪专 家,所以适时地退出了。 作 为一个爱国人士,当我知道以开源erp和Java两个关键词能联合搜索到国产的恩信ERP时,我毫不犹豫地花大量时间投入参与了这个产品的讨论。但是,恩 信的问题和我们现在看到的很多中国开源项目一样,软件作者要求你在提到它时必须说“perfect enough”,而不是“can be better”。 对于开源软件的潜在贡献者,恩信没有努力地降低门槛,而是,没有留门。所以恩信没有脱离大教堂的开发模式,拥抱乱哄哄的市集。他只是个免费软件。现在他还艰难地活着,只是已不再提开源。 后来我又参与了Openbravo项目的中文翻译,独立做了weberp的汉化和基础配置数据库以及中文论坛。对Adempiere也是若即若离,没有深入。都没有真正建立起双赢的社区模式。而且,没有找到真正的原因。那一年,关于开源的记忆中只有困惑。。。
简 单评价一下这几个开源ERP软件:Openbravo的社区采取很集中的高效模式,Adempiere的社区采取的是很民主的低效模式,weberp基本 上和恩信差不多。ob的公司化运作和业务伙伴社区管理方式造就了绚丽的界面,但没有一个“吸纳社区精华到产品里”的模式,ob公司一家独大。 Ad 的社区化运作和纯市集的社区管理方式引爆了很多创新的技术和思路,但没有一个核心的力量整合这些思路和特性,最终造成了版本的混乱和技术投资的重复。一群 compiere社区里资深的业务伙伴5年来在adempiere社区里做了很多零和游戏,加上compiere系都没有可插接的模块化设计。现在ad尚 不如compiere。 weberp 则更应该称为是一个免费软件,核心开发人员只有一个,用户必须接受它90%的功能和界面习惯。由于没有采用mvc模式设计,二次开发起来很痛苦。所以它在 英联邦的小型贸易公司特别流行,是sage或者myob等一些中小型进销存软件的杀手级替代产品。但中国的同类软件,是另一个story。。。
经 历了这么多困惑和挫折,我终于来到了(openerp)tinyerp的世界。被它吸引的原因有两个,“一对多的表单界面”、“面向最终用户的文档”。被 它迷住的原因有两个,“模块化的设计和无所不在的继承让二次开发和发布贡献非常舒服”、“tiny公司集中的项目管理与社区民主的贡献有效地平衡”。 为 什么openerp能有这么快的发展而且被看好?这个项目的作者自始至终就非常关注【ERP专家】,并结合令【程序员】群体折服的优秀架构,用两手都很硬 的组合拳打出了一个品牌。tinyERP的贡献者指南中明确说明,我们不止需要程序员,还需要会计、物流经理、项目经理这些领域专家的参与。 OpenERP 中的成本模块由一家财务软件咨询公司开发,另一个医疗软件的专业公司开发了medical模块,甚至java牛人把jasper report集成到了openerp中作为应用最广泛的报表方案,ruby牛人实现了基于rtest的测试框架,电子商务专家实现了openerp与主流 eshop开源软件的集成...这些非官方模块增强了oe的竞争力。 在 OpenERP的社区中,模块业务专家比python程序员对软件的影响更大。这实际上也是其他成功的软件项目中很常见的情形。对于最终用户来说,软件是 功能的集合,用什么技术、框架甚至开发方式都不重要。产品经理决定项目组"做正确的事",开发人员只需保证"正确地做事"。
开源项目中开发人员占据的不是至高无上的地位,这个很打击积极性。虽然GPL的协议从法律上保障了依法反馈,但“如何保证开发人员的长短期利益实现”这个开源项目共同面对的难题,在OpenERP项目发展的过程中尤为突出。 ERP 程序员要赚钱,有四条路可以选,按难易度依次为:被厂商雇佣、做自由顾问、被咨询公司雇佣、被用户企业雇佣。这个群体的生存质量取决于这个产业链的构建。 有肯花钱请咨询公司上软件的用户企业,有肯外包任务给自由顾问和购买厂商合作伙伴资格或培训的咨询公司,这个产业链才能养得起更多程序员。
开源软件的参与者,从第一次下载这个软件到赚到第一笔钱,要花多久?!
跑 题了么?木有!在ERP产业链中,咨询公司是至关重要的一环。因为IT咨询公司聚集着【专家级软件玩家】,本身的主营业务就是卖服务(和开源的盈利模式不 谋而合呦)。而且基于开源软件的服务成本更低,利润更高。唯一的问题是,他们能否掌控开源软件项目,这个曾经是程序员内部的游戏! 当 一个像openerp这样的开源软件从一开始就【把目标受众定位在专家级软件玩家】的时候,问题迎刃而解。web2.0之所以迅速流行击垮web1.0, 因为规则变了。信息的消费者同时也可以是信息的生产者。传统行业产品的生产者必然也是自己品牌转化率最高的消费者。IBM全公司用Thinkpad有木 有? “消费者参与产品创新”是一种有效的营销策略。在开源项目里,这个策略有最大的执行空间。专家级软件玩家带着从其他渠道汲取来的专业意见提供高质量的反馈,这比千万个路人甲瞄了一眼就说“太好了”或者“太烂了”这样的评价更利于软件的发展。
而且专家级软件玩家的意见往往是客户选型的重要决策依据, 是 更理性的决策。客户的信任来源于对专家水平的认可,而非对软件源代码级别的理解和掌控。而业务专家若是在参与开源软件过程中具备了对软件源代码级别的理解 和掌控,那将是如虎添翼。对软件和个人来说是双赢。加上专业的推广和咨询带来的更多项目机会,给二次开发人员带来的就业岗位就是多赢了。
专业级软件玩家不仅是应该吸纳的,而且是可以吸纳的。这些人能买得起不免费的啤酒,愿意提供免费的演讲,对自由表达自己专业意见的机会有狂热的追求,和程序员一样。而且他们对乱哄哄的市集不反感,就像美眉买衣服,在七浦路买到很靓的衣服比在恒隆买到很贵的衣服更有成就感。 实际上最先对现有商业软件质量提出异议的往往正是这些专业级软件玩家,而开源能给他们一个表述和实现自己想法的机会,这层窗户纸一捅破,力大无穷。