Preparing for the relaunch of my course on free/libre, and open source software, I took stock of the general-interest papers I wrote about open source. From this list, I’m omitting (overly) academic papers; all of these papers should be broadly understandable.
Introduction to Open Source
Abstract: Today’s software systems build on open source software. Thus, we need to understand how to successfully create, nurture, and mature the software development communities of these open source projects. In this article, we review and discuss best practices of the open source volunteering and recruitment process that successful project leaders are using to lead their projects to success. We combine the perspective of the volunteer, looking at a project, with the perspective of a project leader, looking to find additional volunteers for the project. We identify a five-stage process consisting of a connecting, understanding, engaging, performing, and leading stage. The underlying best practices, when applied, significantly increase the chance of an open source project being successful.
Keywords: Crowdsourcing, open source software, open source communities, volunteering process
Reference: Riehle, D. (2015). The Five Stages of Open Source Volunteering. In Crowdsourcing. Li, Wei; Huhns, Michael N.; Tsai, Wei-Tek; Wu, Wenjun (Editors). Springer-Verlag, 2015, 25-38. Republished from The Five Stages of Open Source Volunteering. Friedrich-Alexander-Universität Erlangen-Nürnberg, Dept. of Computer Science, Technical Report, CS-2014-01, March 2014. Erlangen, Germany, 2014.
The paper is available as a PDF file and as HTML on this site.
Abstract: Globally distributed software development projects are on the rise. However, 69% of cross-regional projects fail completely or partially, because of lack of cross-cultural understanding. This paper presents a qualitative study of the impact of communication on Global Software Development (GSD) within firms due to cultural differences. In particular, we provide a model of problems and solutions related to communication of German/Chinese and American/Chinese collaborations in GSD. The model was derived using grounded theory to study six globally distributed software development projects. The results may not only help companies understand cultural problems, but also help them overcome these problems. To this end, we discuss the solutions adopted by the multinational software companies that we studied.
Keywords: Global software development, globally distributed software development, collaboration with China communication, trust
Reference: Bilal Zaghloul, Dirk Riehle, Minghui Zhou. “Communication in Firm-Internal Global Software Development with China.” In Proceedings of the 6th International Conference on Software Business (ICSOB 2015). Springer Verlag. Page 132-138.
The paper is available as a PDF file.
Abstract: Inner source is an approach to collaboration across intra-organizational boundaries for the creation of shared reusable assets. Prior project reports on inner source suggest improved code reuse and better knowledge sharing. Using a multiple-case case study research approach, we analyze the problems that three major software development organizations were facing in their platform-based product engineering efforts. We find that a root cause, the separation of product units as profit centers from a platform organization as a cost center, leads to delayed deliveries, increased defect rates, and redundant software components. All three organizations assume that inner source can help solve these problems. The article analyzes the expectations that these companies were having towards inner source and the problems they were experiencing or expecting in its adoption. Finally, the article presents our conclusions on how these organizations should adapt their existing engineering efforts.
Keywords: Inner source, product line engineering, product engineering, software platforms
Reference: Dirk Riehle, Maximilian Capraro, Lars Horn, Detlef Kips. “Inner Source in Platform-based Product Engineering.” Friedrich-Alexander-Universität Erlangen-Nürnberg, Dept. of Computer Science, Technical Report, CS-2015-02. Erlangen, Germany, 2015.
This early technical report was superseded by the final publication on inner source in platform-based product engineering.
Abstract: Software developers with open source project experience acquire verifiable technical expertise, peer-certified competencies, and positional power—advantages that align with companies’ need to obtain a competitive advantage. Read more…
Keywords: Software developer career, software labor economics, high-tech labor market, open source, inner source
Reference: Dirk Riehle. “How Open Source is Changing the Software Developer’s Career.” IEEE Computer vol. 48, no. 5 (May 2015). Page 51-57.
The paper is available in an unabridged HTML version or as a heavily edited PDF file.
Abstract: Effective software engineering demands a coordinated effort. Unfortunately, a comprehensive view on developer coordination is rarely available to support software-engineering decisions, despite the significant implications on software quality, software architecture, and developer productivity. We present a fine-grained, verifiable, and fully automated approach to capture a view on developer coordination, based on commit information and source-code structure, mined from version-control systems. We apply methodology from network analysis and machine learning to identify developer communities automatically. Compared to previous work, our approach is fine-grained, and identifies statistically significant communities using order-statistics and a community-verification technique based on graph conductance. To demonstrate the scalability and generality of our approach, we analyze ten open-source projects with complex and active histories, written in various programming languages. By surveying 53 open-source developers from the ten projects, we validate the authenticity of inferred community structure with respect to reality. Our results indicate that developers of open-source projects form statistically significant community structures and this particular view on collaboration largely coincides with developers’ perceptions of real-world collaboration.
Keywords: Open source, social network analysis, developer networks, developer communities, respository mining, conductance
Reference: Mitchell Joblin, Wolfgang Mauerer, Sven Apel, Janet Siegmund, Dirk Riehle. “From Developer Networks to Verified Communities: A Fine-Grained Approach.” In Proceedings of the 37th International Conference on Software Engineering (ICSE 2015). IEEE Press, 563-573.
The paper is available as a PDF file.
Abstract: With the increasing prominence of open collaboration as found in free/libre/open source software projects and other joint production communities, potential participants need to acquire skills. How these skills are learned has received little research attention. This article presents a large-scale survey (5,309 valid responses) in which users and developers of the beta release of a popular file download application were asked which learning styles were used to acquire technical and social skills. We find that the extent to which a person acquired the relevant skills through informal methods tends to be higher for free/libre/open source code contributors, while being a professional software developer does not have this effect. Additionally, younger participants proved more likely to make use of formal methods of learning. These insights will help individuals, commercial companies, educational institutions, governments and open collaborative projects decide how they promote learning.
Keywords: Competencies, informal learning, non-formal learning, open source, skills, software developer
Reference: Ann Barcomb, Michael Grottke, Jan-Philipp Stauffert, Dirk Riehle, Sabrina Jahn. “How Developers Acquire FLOSS Skills.” In Proceedings of the 11th International Conference on Open Source Systems (OSS 2015). Springer Verlag. Page 23-32.
The paper is available as a PDF file.