Quality Improvement in Volunteer Free and Open Source Software Projects: Exploring the Impact of Release Management
Total Page:16
File Type:pdf, Size:1020Kb
Quality Improvement in Volunteer Free and Open Source Software Projects Exploring the Impact of Release Management A dissertation submitted to the University of Cambridge for the Degree of Doctor of Philosophy Martin Michlmayr <[email protected]> King’s College March 2007 Centre for Technology Management Institute for Manufacturing University of Cambridge Quality Improvement in Volunteer Free and Open Source Software Projects Exploring the Impact of Release Management Martin Michlmayr Free and open source software has had a major impact on the computer industry since the late 1990s and has changed the way software is perceived, developed and deployed in many areas. Free and open source software, or FOSS, is typically developed in a collaborative fashion and the majority of contributors are volunteers. Even though this collaborative form of develop- ment has produced a significant body of software, the development process is often described as unstructured and unorganized. This dissertation studies the FOSS phenomenon from a quality perspective and investigates where im- provements to the development process are possible. In particular, the focus is on release management since this is concerned with the delivery of a high quality product to end-users. This research has identified considerable interest amongst the FOSS commu- nity in a novel release management strategy, time based releases. In contrast to traditional development which is feature-driven, time based releases use time rather than features as the criterion for the creation of a new release. Releases are made after a specific interval, and new features that have been completed and sufficiently tested since the last release are included in the new version. This dissertation explores why, and under which circumstances, the time based release strategy is a viable alternative to feature-driven development and discusses factors that influence a successful implementation of this release strategy. It is argued that this release strategy acts as a coordination mecha- nism in large volunteer projects that are geographically dispersed. The time based release strategy allows a more controlled development and release pro- cess in projects which have little control of their contributors and therefore contributes to the quality of the output. Preface Except for commonly understood and accepted ideas, or where specific refer- ence is made, the work reported in this dissertation is my own and includes nothing that is the outcome of work done in collaboration. No part of the dissertation has been previously submitted to any university for any degree, diploma or other qualification. This dissertation consists of approximately 60,000 words, and therefore does not exceed the 65,000 word limit put forth by the Degree Committee of the Department of Engineering. Martin Michlmayr March 2007 iii Contents Abstract ii Preface iii 1. Introduction 1 1.1. A Definition of FOSS . 1 1.2. Problems with the FOSS Process . 5 1.3. Contribution of this Dissertation . 7 1.4. Structure of the Dissertation . 7 2. Quality Management 9 2.1. Quality Literature . 9 2.1.1. Definitions of Quality . 9 2.1.2. Process Improvement . 12 2.2. FOSS Literature . 13 2.2.1. Quality Considerations . 13 2.2.2. Development Style . 15 2.2.3. Challenges and Problems . 19 2.2.4. Summary . 21 2.3. Exploratory Study . 22 2.3.1. Methodology . 22 2.3.2. Comparison of Proprietary Software and FOSS . 23 2.3.3. Development and Quality Practices . 24 2.3.4. Quality Problems . 27 2.3.5. Discussion . 30 2.4. Refining the Scope . 31 2.5. Chapter Summary . 34 iv Contents v 3. Release Management 35 3.1. Literature . 35 3.1.1. Software Maintenance . 36 3.1.2. Release Management in FOSS . 38 3.2. Exploratory Study . 40 3.2.1. Methodology . 40 3.2.2. Types of Release Management . 41 3.2.3. Preparation of Stable Releases . 42 3.2.4. Skills . 47 3.2.5. Tools and Practices . 48 3.2.6. Problems . 50 3.2.7. Discussion . 52 3.3. Theory . 53 3.3.1. Modularity and Complexity . 54 3.3.2. Coordination in FOSS . 55 3.3.3. Coordination Theory . 56 3.4. Chapter Summary . 59 4. Research Question and Methodology 61 4.1. Research Question . 61 4.2. The Case Study Approach . 62 4.3. Selection Criteria . 64 4.4. Case Study Projects . 68 4.5. Sources of Evidence . 71 4.5.1. Interviews . 73 4.5.2. Mailing Lists . 73 4.5.3. Documents . 74 4.5.4. Observation . 75 4.6. Methodological Considerations . 75 4.6.1. Construct Validity . 75 4.6.2. Internal Validity . 76 4.6.3. External Validity . 76 4.6.4. Reliability . 77 4.6.5. Personal Involvement . 77 Contents vi 4.6.6. Ethical Issues . 78 4.7. Chapter Summary . 79 5. Time Based Releases: Learning from 7 Case Studies 80 5.1. Debian . 80 5.2. GCC . 85 5.3. GNOME . 88 5.4. Linux . 92 5.5. OpenOffice.org . 97 5.6. Plone . 100 5.7. X.org . 102 5.8. Chapter Summary . 105 6. Release Strategy 106 6.1. Problems Prompting a Change . 106 6.1.1. Lack of Planning . 107 6.1.2. Problems Caused by Lack of Planning . 109 6.1.3. Long-term Issues . 112 6.1.4. Summary . 113 6.2. Time Based Strategy as an Alternative . 113 6.2.1. Conditions That Have to be Met . 113 6.2.2. Time Based Releases as a Coordination Mechanism . 120 6.2.3. Advantages of Time Based Releases . 129 6.2.4. Open Questions . 133 6.3. Chapter Summary . 136 7. Schedules 138 7.1. Choice of the Release Interval . 138 7.1.1. Regularity and Predictability . 138 7.1.2. User Requirements . 140 7.1.3. Commercial Interests . 141 7.1.4. Cost Factors Related to Releasing . 143 7.1.5. Network Effects . 146 7.1.6. Summary . 148 7.2. Creation of a Schedule . 148 Contents vii 7.2.1. Identification of Dependencies . 149 7.2.2. Planning the Schedule . 150 7.2.3. Avoiding Certain Periods . 152 7.3. Chapter Summary . 153 8. Implementation and Coordination Mechanisms 154 8.1. Implementing Change . 154 8.1.1. Incentives for Change . 154 8.1.2. Issues of Control and Trust . 155 8.1.3. Implementation of Control Structures . 157 8.1.4. Summary . 160 8.2. Policies . 160 8.2.1. Stability of the Development Tree . 160 8.2.2. Feature Proposals . 162 8.2.3. Milestones and Deadlines . 164 8.2.4. Summary . 165 8.3. Coordination and Collaboration Mechanisms . 165 8.3.1. Bug Tracking . 166 8.3.2. Communication Channels . 169 8.3.3. Meetings in Real Life . 172 8.3.4. Summary . 173 8.4. Chapter Summary . 173 9. Discussion and Conclusions 175 9.1. Discussion . 175 9.2. Key Learning Points . 178 9.3. Limitations and Future Research . 179 9.4. Conclusions . 184 Acknowledgements 185 Glossary 186 A. Exploratory Studies 188 A.1. Quality . 188 A.1.1. Questions . 188 Contents viii A.1.2. Projects . 188 A.1.3. Consent . 189 A.2. Release Management . 189 A.2.1. Questions . 189 A.2.2. Projects . 191 A.2.3. Consent . 192 B. Case Studies 194 B.1. Interviews . 194 B.1.1. Questions . 194 B.1.2. Projects and Participants . 195 B.1.3. Consent . ..