非常精确地定义对于您的客户来说你的竞争优势否则您将会倒闭。将所有可能的精力集中到那里,并从开源软件中获取其他所有内容,或帮助将其构建在开源软件中。换句话说:选择你的利基市场;与生态系统中的其他参与者合作共同开发平台。
Mike Milinkovich
Eclipse执行总监
摘要
介绍
软件开发的传统观点是,它发生在单个公司内。尽管开发的某些部分可能来自公司外部,但最终产品已由公司指定并完全拥有。当一家公司在同一领域中开发多个产品时,它将通过将其软件开发活动组织为一个产品系列而受益。
产品线提供由组织开发的一组相关产品共享的平台(也称为核心资产基础)。共享平台确定了共同点和差异点。通过重用平台的核心资产在平台之上创建产品,同时减少了开发产品独有资产所需的工作。
产品线的动机是降低开发新产品的成本,同时提高其质量并缩短产品上市时间。通过采用产品线方法,公司可以管理产品多样性并更系统地重用。换句话说,使用产品线方法构建的产品将具有相同的基础,这使公司可以更系统地管理特定于客户的版本。
这种传统观点正受到两个最新发展的挑战:从软件产品线到软件生态系统的转变(Bosch,2009)和从软件生态系统到集合体的转变。当产品线公司将其平台提供给公司外部的开发人员使用时,就会发生从产品线到软件生态系统的过渡。这些人员包括内部开发人员(如产品线中的人员),具有长期关系的战略合作伙伴,无方向的外部开发人员以及独立的解决方案提供商。
从软件生态系统到集合体的过渡最近创建了许多新的集合体,即使它们经常使用不同的名称,包括“生态系统”。示例包括开放源代码Eclipse项目和封闭源代码Artop生态系统。当一组组织想要实现他们自己无法实现的目标时,便建立了集体。集体可以满足其成员的共同需求,使他们能够专注于产品的差异化特征。
经常观察到,开发工作中约有50%到90%的时间花在创建不会使公司与竞争对手脱颖而出的软件上(van der Linden,2009;Milinkovich,2008)。只有其余部分才能使公司与竞争对手区分开来。这种观察促使公司在其他地方(例如,以COTS的形式)或开源软件获取其软件堆栈的非差异化部分。当此类软件不可用时,或者需要对软件进行更高程度的控制以实现更有效的自定义时,组织将共同努力,共同创建自己的通用软件堆栈,以使结果彼此可用,或者甚至是任何其他想要使用它的人。
集合体
集合体可以实现其个人成员无法独自实现的目标。例如,作为一个整体,一组初创公司可以为客户提供完整的解决方案,而单独地他们只能提供客户必须集成的解决方案的一部分。团结起来,使初创企业群体比大型系统集成商更具竞争力。集体还可以合作解决共同的需求,使他们的成员专注于产品的差异化功能。集体的成员越多,其成员就能够分担满足共同需求的重担。但是,这种协作也充满了问题,例如,由于子任务之间的依赖性而导致的协调开销。
集体的主要特征是他们是志愿组织。集体中的成员资格取决于集体如何帮助其成员实现其业务目标。
作为集体的贡献者,成员可以使用集体所产生的总价值。先前的研究表明,只要获得的总价值高于捐款的成本,成员就可以从加入中受益(Baldwin和Clark,2006年)。相反,现有的集体成员对不会为集体增加价值的成员不感兴趣。因此,集体经常对成员施加条件,例如要求成员投入资源。
图1总结了从单一公司到开发软件产品的集体模型的过渡。过渡沿两个方向发生。第一个过渡是从内部活动到外部活动,因为该平台可供外部开发人员使用。第二个过渡是从分级治理到 络治理。平台的创建和发展场所从单个平台所有者转移到一个集体创建和拥有该平台的 络。
图1.软件产品开发模型的演变
案例研究:Eclipse
在本节中,我们将详细描述我们的一个案例研究:Eclipse项目。Eclipse是一个开放源码 区,致力于构建开放软件开发平台(Smith和Milinkovich,2007年)。Eclipse项目成立于2001年,是IBM从Object Technology International收购的一项技术衍生产品。最初,Eclipse 区主要由IBM和其他软件供应商推动。2004年,通过创建独立的非营利性治理机构Eclipse Foundation,IBM放弃了对该项目的控制权,并允许包括IBM竞争对手在内的其他参与者成为 区的平等成员。
Eclipse Foundation负责技术基础结构,协调开发过程,处理知识产权以及促进Eclipse及其更广泛的生态系统。Eclipse Foundation的角色是管理性的。它不会设置项目方向或开发代码。项目的方向由集体的战略成员确定。要成为战略成员,公司必须支付会员费并投入资源以开发平台。Eclipse项目被组织为一组带有子项目的顶级项目。
Eclipse有一个明确的成员参与流程,并且三个理事会提供了项目指导。需求委员会收集,审查并按优先级排列传入的需求。计划委员会管理发布列车。体系结构委员会定义并发展了Eclipse平台的体系结构。单个项目由项目管理委员会监督。理事会由战略成员和项目管理委员会的代表组成。
发现
通过对本研究中案例研究的分析,确定了三个因素作为集体的特征:贡献水平,成员数量和使用多样性。贡献水平是指集体成员向核心资产基础贡献的工作量。贡献不仅限于代码,还可以包括需求,设计,测试用例和反馈。成员数就是集合体的大小。使用的多样性衡量了平台使用环境的范围和多样性。
图2显示了一个模型,该模型将这些因素与我们通过研究案例研究得出的经济结果联系起来。传统的产品线成本效益模型仅模拟对成本的影响,而没有模拟其他诸如上市时间或质量之类的收益。该模型考虑的三个经济结果是时间,质量和成本。时间就是上市时间或协调开销。质量是指核心资产基础的质量或产品的质量。成本是集体组织的成本,创建核心资产基础的成本,重用资产的成本或不基于平台的唯一资产的成本。
图2.将因素与经济产出联系起来。因素和经济结果之间的箭头是表明它们之间因果关系的命题。
捐款水平在集体成员之间分布不均。取而代之的是,正如对开源项目的研究表明的那样,少数成员占了大部分贡献(Crowston等,2011)。有些成员可能更适合创建特定的核心资产,因为所需的技能通常无法获得,或者他们可能比其他成员更迫切地需要在资产基础中提供特定资产。大多数Eclipse子项目从一家公司获得其主要投入。与贡献较少的公司相比,该公司对平台中包含哪些核心资产的影响更大。
命题一: 贡献的资产和贡献者的需求之间更好地协同促成产品推向市场的时间下降。
在有关小团体的文献中,信任被认为是有效团队协作的决定因素(Crowston等,2011)。成功的领导人做出了有力的贡献,并在 区中居于中心地位。由领导者主持的项目已经证明了自己的技术能力,并且拥有过往成功的记录,通常更有可能取得成功。通过在项目的早期开发关键功能来证明该项目可行且有价值,可以增加信任度。随着2001年Eclipse源代码的首次发布,IBM引发了其他公司的贡献。
命题2:增加集体成员之间的信任可以降低协调开销。
通过他们的贡献水平,成员可以确保核心资产符合其业务目标。对特定资产贡献最大的成员可以期望在重用该资产时受益。一项关于开源开发的研究发现,贡献者从共享资产的开发中获得了私人利益,而共享资产的开发对于仅使用资产的“搭便车者”是不可用的(von Hippel和von Krogh,2003年)。)。这些包括学习,所有权和控制感,以及其他人对所贡献代码的反馈。贡献者还可以更好地根据自己的需求量身定制代码,因为他们为通用代码贡献的代码可能无法很好地满足其他人的需求。许多商业产品(例如IBM的WebSphere产品)都建立在Eclipse平台之上。当IBM发行Eclipse的初始版本时,即使该代码对任何人都开放,他们在使用该平台方面也都领先于其他人。
命题三:在核心资产基础中重用资产的成本以及开发独特的资产都会随贡献程度而降低。
当集体成员为核心资产基础做出贡献时,他们会开发一个共享平台。共享平台的目的是向集合成员提供非区分功能,以便每个成员都可以专注于其区分功能。根据贡献与集体其他成员的目标之间的协调程度,来决定是否在共享平台中包含贡献。如果捐款仅使单个成员受益,则该捐款将不包括在平台中。例如,Eclipse Modeling Framework提供了建模和代码生成功能,这些功能被诸如Rational Rose之类的工具所利用。基于框架的工具可以互操作,因为它们共享通用的表示形式。
命题4:发布到市场的时间随成员数量而下降。成员可以专注于在开发有高附加值的新特性。
命题5:在相同核心资产基中相同领域工作的成员数增加会导致协调开销增加
核心资产基础的高品质吸引了新成员加入集体。建立在高质量基础之上的产品也将具有更高的质量。在小型公司的集体中,单个成员没有资源来构建达到平台所提供质量水平的系统。从命题2来看,很明显,集体需要获得足够的初始捐款,才能达到可接受的质量水平,从而吸引更多的新成员。一项对使用Linux的嵌入式系统公司的研究表明,这些公司有动力公开他们对Linux的更改,以获得其他公司的技术支持(Henkel,2006年)。
命题6:核心资产基的质量随核心资产基中提供反馈的成员数目的增加而增加。
集体开发核心资产基础的方法比集体中每个成员单独开发完整软件堆栈的效率更高。成员无需创建自己的商品功能版本,而是可以专注于开发可将它们彼此区分开的功能。随着软件堆栈的发展,维护软件堆栈的工作量也大大减少了。基础技术的变化可以在成员之间传播。如果成员在其自己的软件堆栈中已有投资,则一开始切换到由集体开发的平台可能会很昂贵,但从长远来看会有所回 。建立在Eclipse Modeling Framework之上的公司通过为最终用户提供的价值来与众不同。
命题7:提供资源的成员数目的增加到对核心资产基的成本贡献降低
每次在新的环境下使用核心资产基础时,都会行使基础的新方面。每个新的使用环境可能会发现以前未发现的错误或遗漏。这增加了纠正错误的机会,从而提高了所有基于资产基础的产品的质量。例如,每个Eclipse子项目都将共享的核心组件暴露给新的用途。
命题8:核心资产基的开发质量随用途的多样性降低。每一个新的应用环境将进一步强化资产基础。
使用的多样性是由集体成员的需求的多样性所驱动的。在增长的早期阶段,随着用途的多样性而出现的多种视角将使整个集体受益。将通过对产品需求的广泛了解来决定要在核心资产基础中包括哪些功能。在以后的阶段,太多的多样性实际上可能以凝聚的方式阻碍核心资产基础的发展。最初发布时,Eclipse项目为以Java为中心的开发环境提供了核心组件。随后,它变得多样化,包括用于工具集成,建模和Web应用程序的组件,这些组件可以应用于多个领域。如今,Eclipse也许可以最好地描述为针对特定领域的垂直解决方案集合。如今,Eclipse项目池中约有一半是针对特定技术的。Eclipse项目的多样性已经大大增加,并且作为一个整体,这些项目现在的凝聚力远不如以前。
命题9:创建核心资产基的成本首次降低,然后然后随用途的多样性增加。在低多样性的应用中,从一个更广范围的视角来看集体会收益。当应用的多样性提高,集体将出现较少的凝聚力。
结论
(译自:Open Source Business Resource)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!