Understanding Software Development in an Open Source Context:Network Analysis of Source Code Repositories

University dissertation from LTH Tryckeriet E-huset

Abstract: Open Source Software (OSS) created a paradigm shift within the software engineering field prompting further research to understand how mature, industry grade, software can be produced in an online milieu with distributed and lightly managed developers contributing source code in their free time. The OSS has become also a major revenue generator for many commercial organizations, and has found its place in closed source products, putting many proprietary software producers in the middle of an OSS community.
The goal of the thesis is two-fold. Firstly, the research focuses on the assessment of the scope of impact the OSS has had on commercial software development. Secondly, the research studies some of the scoped aspects in more depth, such as the applicability of the OSS development practices within the closed software development environment, also known as inner source, as well as the analysis and benchmarking of developers’ collaboration networks.
A systematic review of literature was conducted to scope OSS usage within the
commercial context, while a case study with focus of understanding applicability
of inner source development practices was conducted within a large company. The conducted research has in large part focused on the analysis of source code for over 400 Open Source Software projects, such as Android Open Stack, Apache Software Foundation, Ingres dbms, and a proprietary source code produced by a large branch within Ericsson.
The results of the conducted research show that Open Source Software has
impacted the way companies develop software by including OSS components into their proprietary products, implementing OSS business models, participating in OSS communities, and implementing OSS development practices. The research provides guidelines on how to implement inner source, as well as a network theory based approach for assessment and monitoring of software development process along with associated network metrics benchmarks.