Study of the Release Process of Open Source Software Case Study
Total Page:16
File Type:pdf, Size:1020Kb
Study of the Release Process of Open Source Software Case Study Tor Erik Eide Master of Science in Computer Science Submission date: June 2007 Supervisor: Reidar Conradi, IDI Co-supervisor: Carl-Fredrik Sørensen, IDI Norwegian University of Science and Technology Department of Computer and Information Science Problem Description The student should study processes related to commercial release of open source software and identify criteria that are important for achieving a successful project. Assignment given: 19. January 2007 Supervisor: Reidar Conradi, IDI Abstract This report presents the results of a case study focusing on the release process of open source projects initiated with commercial motives. The purpose of the study is to gain an increased understanding of the release process, how a community can be attracted to the project, and how the interaction with the community evolves in commercial open source initiatives. Data has been gathered from four distinct sources to form the basis of this thesis. A thorough review of the open source literature has been performed. To further substantiate the data gathered from the literature study and to gain qualitative insights from companies heavily involved with open source development, four Norwegian companies adopting open source strategies have been interviewed. Data has also been gathered from active participation in the release process of the Keywatch networking software, including the creation of a web site and promotion of the project to build a community. Finally, the web sites of six company-initiated open source projects have been studied to gain further insight into how commercial open source projects are presented. The contributions of this report can be divided into two parts; a description of the open source phenomenon and theoretical guidelines describing important measures to be taken into consider- ation when releasing software as open source. The description of the open source phenomenon is derived from reviewing the open source literature and includes a description of the history of open source, its characteristics, licenses, legal issues related to open source, and motivations for adopting open source software. The theoretical guidelines are based on corroboration of data gathered from qualitative interviews, reviewing of commercial open source web sites, and findings in the research literature. The guidelines are summarized in the concluding section of the report together with suggestions for future research. Keywords: Open Source, Qualitative Research, Commercial Open Source Adoption, Open Source Preparations, Open Source Release Process, Open Source Community Management Preface This report is a Master Thesis at the Department of Computer and Information Science (IDI) at the Norwegian University of Science and Technology (NTNU). The project presented herein is performed in the context of the ITEA COSI project (Co-development using inner and Open source in Software Intensive products). I would like to thank my supervisors Professor Reidar Conradi and Dr. Carl-Fredrik Sørensen for their help and guidance for my work, as well as my co-advisor Audun Jensvoll from Keymind Computing. I would also like to thank Knut Yrvin from Trolltech, Stefan Landro and Christian Schwartz from Bekk Consulting, Thomas Malt from Linpro, and Vidar Langseid from eZ Systems for their willingness to participate in this study, and their valuable input through the interviews. Finally, I would like to thank Øyvind Hauge for helpful feedback, and Per Kristian Schanke, my co-author in the depth project. Trondheim, 2007-06-22 Tor Erik Eide Contents Abstract i Preface iii Contents v List of Figures xi List of Tables xiii I Research Context 1 1 Introduction 3 1.1 Background ......................................... 3 1.2 Motivation and Rationale ................................. 3 1.3 Problem Description .................................... 4 1.4 Research Approach ..................................... 4 1.5 Research Questions ..................................... 4 1.6 Contributions ........................................ 5 1.7 Report Outline ....................................... 5 2 Research Design 7 2.1 Research Goal ........................................ 7 2.2 Research Questions ..................................... 7 2.3 Research Approach ..................................... 8 2.3.1 Grounded Theory ................................. 8 2.3.2 Explorative Research ................................ 8 2.3.3 Descriptive Research ................................ 9 2.3.4 Sampling ...................................... 10 2.4 Data Collection ....................................... 11 2.4.1 Literature Survey .................................. 11 2.4.2 Participant Observation .............................. 13 2.4.3 Interviews ...................................... 13 2.4.4 Transcription .................................... 14 2.4.5 Project Web Sites ................................. 14 2.5 Data Analysis ........................................ 14 vi CONTENTS II Pre-study 15 3 Open Source History 17 3.1 Research Laboratories ................................... 17 3.1.1 ARPANET and Network Infrastructure ..................... 17 3.1.2 Unix ......................................... 18 3.2 GNU and the Free Software Foundation ......................... 18 3.3 Linux ............................................ 19 3.4 World Wide Web ...................................... 20 3.5 The Apache Software Foundation ............................. 20 3.6 The Open Source Initiative ................................ 21 3.7 The Mozilla Foundation .................................. 21 3.8 The Eclipse Foundation .................................. 22 3.9 The Impact of Open Source Today ............................ 22 3.10 Summary .......................................... 23 4 Open Source Characteristics 25 4.1 Definition .......................................... 25 4.2 The Community ...................................... 26 4.2.1 Individual Motivations ............................... 26 4.2.2 Organizational Structure and Roles ........................ 28 4.3 The Development Processes ................................ 29 4.3.1 Conceptualization ................................. 29 4.3.2 Requirement Specification, Planning, Analysis and Design ........... 30 4.3.3 Implementation ................................... 30 4.3.4 Writing Code and Submitting it to the Community for Review ........ 30 4.3.5 Pre-Commit Test .................................. 30 4.3.6 Development Release ................................ 31 4.3.7 Production release ................................. 31 4.4 Summary .......................................... 31 5 Licenses and Legal Issues 33 5.1 Intellectual Property .................................... 33 5.1.1 Patents ....................................... 33 5.1.2 Trademarks ..................................... 34 5.1.3 Copyright ...................................... 34 5.1.4 Software Licenses .................................. 34 5.2 Open Source Licenses ................................... 35 5.2.1 Terminology and Common Properties ...................... 35 5.2.2 GNU General Public License (GPL v.2) ..................... 36 5.2.3 GNU Lesser General Public License v.2.1(LGPL) ................ 37 5.2.4 Berkeley Software Distribution License(BSD) .................. 37 5.2.5 Apache License ................................... 38 5.2.6 Mozilla Public License(MPL) ........................... 38 5.2.7 Eclipse Public License(EPL) ........................... 38 5.3 Summary .......................................... 38 vii 6 Commercial Adoption of Open Source 41 6.1 Commercial Use of Open Source Software ........................ 41 6.1.1 End-Use of Open Source Products ........................ 41 6.1.2 Reuse of Existing Components .......................... 42 6.2 Commercial Participation in Open Source Projects ................... 42 6.2.1 Collaboration in External Projects ........................ 43 6.2.2 Releasing Code as Open Source .......................... 43 6.2.3 Development Assistance .............................. 43 6.2.4 Increased Adoption ................................. 44 6.3 Earning Money from Open Source ............................ 44 6.3.1 Support Sellers ................................... 44 6.3.2 Loss Leader ..................................... 45 6.3.3 Widget Frosting .................................. 45 6.3.4 Accessorizing .................................... 45 6.3.5 Hybrid Model .................................... 45 6.3.6 Leveraging The Community ............................ 46 6.4 Summary .......................................... 46 III The Release Process of Open Source Projects 47 7 Identifying the Rationale 49 7.1 Motivations ......................................... 49 7.1.1 Increasing the Value of the Product ....................... 49 7.1.2 Creating Revenues from Open Source ...................... 51 7.2 Open Source is Not a Magical Bullet ........................... 52 7.3 Summary .......................................... 53 8 Important Measures to Achieve Success 55 8.1 Project Properties ..................................... 55 8.1.1 The Project Name ................................. 55 8.1.2 Code that Works .................................. 56 8.1.3 Meet a Demand .................................. 57 8.1.4 Potential for Success ................................ 59 8.1.5 Software Architecture ............................... 59 8.2 Software Documentation .................................