Open source software: Networks of social and functional dependencies
FRANK SCHWEITZER
ETH ZURICH
Open Source Software (OSS) can be seen as a evolving complex network on two different, but interlinked system levels: (i) the product level, i.e., the structural level of the software architecture itself. Here, the nodes of the network are given by software modules (such as classes), whereas the links between nodes may describe the type of connection (such as usage or inheritance), (ii) the production level, i.e. the social interaction level of humans contributing to the software. Here, the nodes of the network represent the different people involved in the 'production' (such as developers), whereas the links express their various interactions (such as forum communication, or collaboration). As a predominant feature, both of these networks are highly dynamic in addition/deletion of nodes or links to/from the network. Moreover, they do not just change independently, but they coevolve. Hence, understanding the development of OSS puts a challenge on different sciences: Physics, to reveal (a) the structural features and (b) the abstract dynamics of these two networks; Computer Science, to elucidate the Software Engineering principles underlying OSS; Economics/Management Sciences, to understand how decentralized project organisation and self-organized social interaction may eventually result into a successful products. In this talk, we analyse the dynamics of social communities in more than 100 projects, the dependency structure and the change records of 35 Java projects and the evolution of the dependency network. By revealing similarities between projects very different in size and effort, the talk aims at quantifying the determinants of success and failure of such projects -- an insight with potential impact far beyond OSS. Submitted for the Section: Social, Coporate, Economic & Political Networks