论文部分内容阅读
开源软件项目,特别是大型开源软件项目的开发模式和协调机制是引起学界很大关注的研究课题。本论文以著名的开源云计算平台之一OpenStack项目为例研究大型开源软件的开发。研究主要包括下面三个方面。 (1)首先以OpenStack的代码协作修订网络为主对OpenStack开源软件的人员组成模式进行研究。以该项目Git提交数据中父子哈希码关系为基础构筑代码协作修订网络,分析其结构与演化。并在此基础上探究OpenStack项目的内在的自发组织模式和人员集体工作模式。研究结果表明,OpenStack的开发可以看作一个具有稳定的中央节点群的网络型系统的集体知识创造活动。核心开发人员在其中起主导作用,但一般活跃开发人员从开发总工作量上是整个项目的主体。OpenStack的子项目与社区具有显著关联性。 (2)协作网络的动态发展也显示了协作网络的社区与OpenStack子项目具有非常显著的对应关系。协作网络社区的发展轨迹清晰,社区与子项目的关联关系得到很好的维持。从开发者个人层面看,大部分开发者的开发工作重心始终集中于单个子项目。部分开发者显现了其主要工作内容在子项目之间的“漂移”,这种漂移主要出现于工作集中度较低的开发人员以及项目的核心开发人员(领导者)。在所检测到的开发活动“漂移”中,有较大部分是转向新加入的子项目,这显示了OpenStack项目中开发力量具有自发向新增子项目协调的趋势。 (3)以OpenStack的基于时间序列对OpenStack开源软件开发人员的工作模式进行了研究。研究表明,项目开始时期是时间爆发性最高的一个时间段,即开发人员工作量最为繁重的一个阶段,以少量的人员支撑起了前期大量的代码编写工作,开发人员提交代码频率突然增加时,会影响在网络中与之关系密切的合作人员的提交代码频率也增加。但两人的工作模式并不会彼此干扰。这显示了OpenStack开源软件的网络会影响到每个开发人员的提交代码的频率,即开发人员的提交代码频率的快慢并不是仅由自身做决定的,但对于时间的安排却是由自己决定的。反映了开源软件的开发人员在工作量的安排上的“不自由”,但在时间的安排上却更自由的特性。 本文的研究结果对于理解大型开源软件项目的自组织型开发人员协作结构的形成和演化,及大规模群体的社会化创新活动模式具有参考意义。