The Co-Evolution of Systems and Communities in Free and Open Source Software Development
Because a Free and Open Source Software (F/OSS) project is unlikely to sustain a long-term success unless there is an associated community that provides the platform for developers, users, and user-turned-developers to collaborate with each other, understanding the well-observed phenomenon that F/OSS systems experience “natural product evolution” cannot be complete without understanding the structure and evolution of their associated communities. This chapter examines the structure of F/OSS communities and the co-evolution of F/OSS systems and communities based on a case study. Although F/OSS systems and communities generally co-evolve, they co-evolve differently depending on the goal of the system and the structure of the community. A systematic analysis of the differences leads us to propose a classification of F/OSS projects into three types: Exploration-Oriented, Utility-Oriented, and Services-Oriented. Practical implications of realizing the co-evolution and recognizing the different types of F/OSS projects are discussed to provide guidance for F/OSS practitioners.