是否“开放”项目更容易成功?


研究表明,长远来看,最开放的平台将会最成功。Eclipse,Linux,WebKit和Mozilla都是有力证明。Eclipse在访问、开发、衍生物和社区方面的管控是最开放的,紧接是Linux和WebKit,然后是Mozilla,MeeGo,Symbian和Qt。这7个平台在开源管控指数方面的差异在30%之内。

研究表明成功的开源项目有特定的共性:及时获取源代码,强大的开发者工具,过程透明,无障碍的代码贡献,以及无障碍的成为提交者。平等和公平对待开发者 - 委任已经成为常态。

我们注意到大多开源项目和“开放”相违的地方围绕项目路标和提交代码的决策制定。尤其从商业组织发展而来的开源项目不愿放弃项目上的控制,因此采用层次性的决策架构。

Android的例外

“Android是有历依赖最成功的Linux发布...”“Android为“如何跟开源社区对着干”树立了榜样”James Bottomley,Linux基金会董事长,和Linux基金会技术咨询委员主任,在2011年日本的Linux大会说讲

Android排为最封闭的项目,开源管控指数为23%。然而,它又是开源历史上最成功的项目,这是否说明开源指数并非开源项目成功的保障?

Android的成功和公共代码库的开源许可关系甚少,如果没有Google的财力和卓越的工程师队伍,Android不可能达到现在无所不在的地位。Android平台的开发不需要外部开发者或者商业公司的参与,如同我们之前讨论的,OHA只是批准的戳记,而不是发布的渠道。

Android“less than zero”的价格,是由于Google的商业核心不是软件也不是搜索,而是广告,因此Google的策略是补贴Android,通过低廉手机和移动互联网,获取广告方面更多的关注。更重要的是,OEM和运营商为和Apple竞争投给Android数十亿计资金,正如Stephen Elop在2011年6月讲:Apple为Android创造了需求条件。

然而,我们从Google对Android开源项目管理上学到很多有益的东西。第一、Android作为开源项目释放时已是完善的领先项目,OEM、运营商和软件开发者或多或少可以直接使用它来创建衍生手机和应用;第二、Android一开始通过1千万美元开发者竞赛在开发者中产生轰动,除经济激励外,Google释放强烈信息:开启前所未有的移动领域开放应用领域;最后,Google创新的速度(2010年5个版本)超出所有外部创新,使得整个生态系统都依赖于Google。

好的实施

基于我们对主要的移动开源项目的研究,我们列出管控方式中好的实施。这些实施归纳在四个管控方面:访问,开发,衍生物和社区。

“Apple 创造了Android的需求条件”,Stephen Elop,Nokia CEO,在2011年6月8日的开放移动峰会的讲话。

访问

一个开源项目最基本的要求是开发者可以阅读,下载,修改和运行代码,不存在开发者歧视,即所有代码都可及时被所有开发者获取。对源代码的限制应极小,不应该特定开发者可提前获取,这会造成摩擦并引出项目分支。所有开源项目都应使用OSI批准的开源许可。

接这重要的是容易访问或获取开发者工具,邮件列表以及论坛,这样开发者可以加快了解项目,容易bulid和运行代码。

开发

尽可能采用简单的代码贡献机制,贡献过程是自由和公开。尽管我们赞同对知识产权关心,例如侵犯版权,这不应使贡献过程超出必要地复杂。我们注意到没有项目社区审核这些版权签署,这是为什么版权很大程度是不必要的原因。为项目提供合适的开源许可,广泛版权(和理想专利)许可足用即可。版权签署只有在项目需要改变源代码许可条款时需要,大部分是没有必要的。提供正确的开源许可应放在首要地位。

开源项目的成功很大程度取决于开发者的兴趣和支持,我们认为决策制定透明度和公平对待所有开发者(他们可以成为项目提交者)对长远项目成功很重要。将提交权利限制给特定开发者或商业组织,长远而言会失去开发者的支持,因为开发者对不能提交代码感到沮丧,尤其他们的贡献连续被拒绝或者忽视。

开发者需要知道发展方向以及如何和为何制定,以及需要有机会影响项目已符合自己的需求,即开源中话语权,也就是哪些些开发者可以通过提交代码而成功产生影响力。因此应当允许所有的开发者贡献代码,只要他们代码有足够水平。精英发挥作用,给予相应回报。此外,应提供指标数据显示贡献从何而来,提交者是谁。

在实际的开发进程,项目的策略是优先贡献给上游项目(如果项目包含其他开源项目),使得对上游和下游项目都得到修改和益处。

衍生物

兼容框架在开源项目中越来越普遍,避免分裂以及确保应用可在多个平台或操作系统上运行。然而最好的机制是兼容过程独立和透明,不被单个开发者或组织操控。例如MeeGo请求Linux基金会管理它的商标兼容要求,使之独立于项目。

社区结构

一些项目使用非营利基金会结构提供独立性,使得平台不被某个组织所控制;另一些项目和Linux基金会建立合作关系,加强项目的开源公信力。

开源社区另一方面是社区如何实施权威。我们注意到Linux和Mozilla都采用仁慈独裁者模式,争议最后由个人来裁决。这种方式可有效工作,它仍是决策制定的集权方式,不容易允许其他人参与决策过程。

 

显然,单是开源许可不能建立一个开源项目,它需要开放管控模式。我们希望通过此报告帮助更多的开源项目采用适当管控模式,使之成功。

End

相关链接:

  • VisionMobile: 开放管控指数(一) (二)(三)(四)(五)(六)(七)(八)(九)(十)(十一)
  • 我的产业生态链和杂谈文章