开源社区一种互联网环境下的复杂自适应系统
2014-08-07欧卫谢赞福
欧卫++谢赞福
摘要:在计算机软件产业的发展历程中,开源社区能够灵活地根据环境变化来调整自身行为而表现出极强的环境适应能力和生命力。因此,开源社区具备复杂自适应系统的典型特征。本文将开源社区看成一种复杂自适应系统,用复杂自适应系统的变异、交互、选择过程来对开源社区的基本特征进行解读。
关键词:开源社区;复杂自适应系统;变异;交互;选择
前言:自人类文明伊始,各国的君主、王候、实业家们便开始采用复杂性思维来分析社会管理问题,设计组织架构。但早期的朴素复杂性思维深受“自上而下”的机器概念模型所影响。在这种机器概念模型中,所有元素是通过自上而下的分层等级关系组织在一起的,两个不在同一层级或不在相邻层级的元素不能直接相互交互。这种模型易于实现,且相对便于管理,因此直到今天仍适用于绝大部分组织。
自人类进入信息时代来,各种信息网络迅猛发展,社会中各种不同元素之间的联系日渐增强。这种现象使传统的自上而下的组织逻辑关系不再普遍适用,相反,一些具有“自下而上”特性的组织开始出现,并对人们的生活产生巨大深刻的影响。
在过去,人们把整个社会看成一台机器,用制造、维护机器的思维方式来处理社会事务。如今,人们开始把世界看成有无数个网络组成的巨型系统,用系统的思想和观点来维系人类社会的存在与进化。在人类社会这一巨型系统中,互联网,毫无疑问是一个其中的一个非常重要的子系统。
显而易见地,互联网这一子系统的组织逻辑,并没有遵循“自上而下”的组织模型,相反,它是“自下而上”。在互联网中,没有所谓的控制中心,能对所有信息流进行绝对的控制,人人都可以是信息的传播者、消费者。在传统的组织结构中,领导阶层通常可以计划、设计组织的发展方向,而在互联网中,对信息的控制、规划并不总是有效的。
互联网的发展催生了各种致力于软件开发的开源社区。作为互联网的一个重要方面,开源社区自然也具有“自下而上”的组织逻辑,且具有高度的复杂性。这种复杂性并不只是体现在技术层面,而且还体现在软件开发过程中的社会层面,且同人类社会的其他社区一样,具有高度的自适应性。因此,采用复杂自适应系统的思想来剖析开源社区,具有较强的现实意义。
一、开源社区
开源社区是指旨在开发开源软件的虚拟社区,是由一群具有不同特性的成员所组成的。这些成员有着不同的动机和爱好,相互之间不断进行交互沟通。根据成员功能划分,开源社区大致包含以下五种角色(主体):
使用者。使用者是指那些使用开源社区开发的软件产品的个人,但由于不具有相关技能、时间或者资源,这些人并不直接参与开源软件的开发。使用者在开源社区中起着基础作用:因为使用者重复、大量的使用行为,使得软件产品得以接受全面、彻底的测试,从而为软件开发者开发、改进产品提供反馈。
生产者。生产者是指在开源社区中从事软件开发的个人或者组织,是开源社区的核心成员。他们的教育、职业背景往往多种多样,其贡献的动机也是各不相同。
领导者。领导者是指开源社区中少数精英开发者,他们除参与开发工作以外,还被开源社区赋予一定的权力,以对软件项目的立项、开发、发布、改进进行管理。他们需要协调开源社区中各项开发工作,整合各个功能模块,研究外部反馈并在此基础上进行决策。
公司。公司是指对开源社区及其项目感兴趣的商业公司。他们使用开源社区的产品,并对其进行资助,有时参与软件项目的开发。
机构。机构是指对开源社区及其开源软件感兴趣的社会非盈利组织。许多公共机构,为营造发展开源软件的文化氛围发挥了巨大作用。很多非常重要的开源软件的诞生,比如Linux操作系统,就得益于大学在技术、资金、推广上的大力协助。
二、复杂自适应系统
系统是由各种特性各异、相互关联的元素构成。这些元素被称为主体。各个主体在系统中与其他主体以及环境相互影响。在与其他主体和环境的交互过程中,每一个主体都遵循相应的规则。这些规则是否适当直接关乎一个主体的生存、发展甚至消亡。因此这些规则的选择往往以最大环境适应度作为指标。一个有效的规则会同时被多个个体遵循而产生了一个种群。在一个种群中各个主体往往有着类似的行为。一个种族的演化方向是由该种族所选择的适应规则决定的。
当一个复杂系统的主体能够根据环境以及其他主体行为的变化来不断地调整其自身行为以适应环境时,该系统被称为复杂自适应系统。因此,主体与主体之间、主体与环境之间的信息传递通畅程度直接决定一个复杂自适应系统的发展程度。高度畅通的信息传递网络可以让复杂自适应系统建立一个健壮有活力的动态主体网络。
复杂自适应系统的组织结构是自组织形式。在复杂自适应系统内,各主体、以及主体所选择的规则不断地进行变异、交互、选择这三种基本作用。
变异:变异是产生具有新特性的个体或选择新适应规则的过程,其产生的新个体可能更为适应环境而取代、淘汰旧个体。
交互:是指系统内各主体、各规则之间的相互联系、相互影响。交互既不是随机的,也不是完全可以预测的。交互的质量和数量决定系统的动态程度。
选择:选择是指对系统内各主体及其适应规则进行选择,优胜劣汰。因此在选择中,系统通过选择适当的规则,来判断哪些主体、规则应该被淘汰,哪些应该加以保留,它直接影响种群的进化过程。
三、分析
复杂自适应系统理论适用于那些需要频繁反馈、不断革新演化、存在时间较长且消亡风险较低的系统。将开源社区看成一个系统,那么这个系统满足上述条件。
首先,开源社区由特性各异的不同角色组成,每一个角色遵循其特定的适应规则。在开源社区中,每一个成员的角色并不是由其他具有更高权利的角色所指派,相反地,每一个成员都能够自由选择其所感兴趣的角色以及同其他成员进行交互的方式。因此开源社区中的所有角色具备复杂自适应系统中主体的特征。
第二,开源社区的软件产品往往是操作系统、网络平台、web服务器、编程语言。这些产品的规模庞大,能吸引非常多的人员和组织参与研发、维护,由此成员间必须进行频繁、高强度的交互,并催生新的变异产品。这些具有基础设施意义的软件产品往往存在时间极长。
第三,软件行业作为一种不断动态发展的行业,需要从业者不断革新、演化其解决方案,特别对于主要从事互联网相关产品开发的开源社区尤为如此。开源社区需要不断引入新的创意和技术,使其产品保持技术上的领先,由此也激发整个开源社区的创造力,推动软件技术的不断演化和革新。
第四,为完善其产品,开源社区各成员需要不断地接受来自其他成员或主体的产品反馈意见。因为开源程序往往被大量分发,各种角色的成员在一定时间内的所收到的反馈是非常频繁的。正因为这种频繁的反馈,造就了程序的健壮性和稳定性。
第五,因为开源社区往往采用模块化开发方式。如果某一模块在设计、开发、完善的过程中出现了问题,这些问题不会影响到其他模块而导致整个产品生命的终结。且开源社区具备自组织的结构逻辑,其中没有绝对的权利控制角色,参与是完全开放的,因此开源产品并不会因为某一个体的退出而消亡,相反,在社区内很快会出现新的替代成员或者方案。
四、解读
如上所述,开源社区的参与是开放的,有着“自下而上”的组织结构,具备较快的产品更新速度,且能够实施平行开发。这些特征能够使用复杂自适应系统的变异、交互、选择三个机制进行解读。
参与开放:参与开放使得开源社区的决策灵活多变,产品演化的自由度较高。显然,这一特性是变异机制的体现。参与开放性使得成员的贡献积极性不高,成员之间的竞争程度相对较低,这可被解读为选择机制和规则的不成熟,环境对主体的选择不能适当地进行。为调动成员的积极性,开源社区往往会提升软件新版本的发布频率。为实现新版本中的新功能和特性,成员与成员、成员与社区之间必须进行新的交互与沟通从而提升了主体间的交互频率。
“自下而上”的组织结构:开源社区的决策权力是分散化的。权利的分散使得信息的流通更为通畅、自由。如将开源系统看作一个复杂自适应系统,那么“自下而上”的组织结构增强了主体之间的交互沟通机制。但该组织结构也导致开源社区在产品的发展方向上产生分歧,这种负面效应是开源社区这一复杂自适应系统的变异过程。为减少这种负面效应所带来的影响,开源社区会自发产生领导团队。领导团队负责维系各成员间的联系,监督、协调各小组的开发、维护工作,决定产品的发展方向。因此,在开源社区内领导团队实施了对产品的选择过程。
相对较快的开发速度:相对较快的开发速度使得频繁发布产品新版本成为可能。产品不断地更新是自适应复杂系统的变异过程。但是太过频繁的新产品发布,导致新产品得不到用户的充分测试,意味着使用者与开发者、开发者与开发者之间的、针对同一产品的交互沟通不能充分顺畅地进行。为弥补这一缺陷,开源社区采用双开发路径:一条路径负责不断开发新的产品版本,另一条路径负责改进旧的版本使其更加稳定、健壮。这种开发路径是对开源社区内的人力、物力进行选择的结果:哪些资源适合开发新的版本,哪些资源适合维护改进旧的版本。
平行开发:平行开发使得开源社区能够针对同一问题同时实施多种不同的解决方案,这一过程是自适应复杂系统变异过程的结果。但是由此也带来问题:同时实施几种不同的解决方案使得经济成本、管理成本指数上升,而且不同方案之间不兼容几率大大增加。这种负面影响是由主体之间的交互不畅造成的。为减少由此带来的负面影响,开源社区会采取模块化的开发方式:将一个产品划分成几个功能不同、相互耦合程度较低的模块,各小组针对不同的模块实施开发。将开发过程进行模块化地划分,是自适应复杂系统实施选择功能的过程。
结语:开源社区具有自组织的结构逻辑,能够根据周围环境的变化不断调整自身行为以最大程度地适应环境,具有复杂自适应系统的显著特种。因此,用复杂自适应系统理论来分析开源社区有着较强的现实意义。本文用复杂自适应系统的变异、选择、交互理论对开源社区的基本特点进行了解读。使用复杂自适应系统理论来优化一个开源社区的组织机制为本文作者的下一个研究方向。
参考文献:
[1] 许国志.系统科学[M].上海科技教育出版社,2000.
[2]何大韧.复杂系统与复杂网络[M].高等教育出版社 ,2009
endprint