Source Software Development : The Apache Server

According to its proponents, open source style software development has the capacity to compete successfully, and perhaps in many cases displace, traditional commercial development methods. In order to begin investigating such claims, we examine the development process of a major open source application, the Apache web server. By using email archives of source code change history and problem reports we quantify aspects of developer participation, core team size, code ownership, productivity, defect density, and problem resolution interval for this OSS project. This analysis reveals a unique process, which performs well on important measures. We conclude that hybrid forms of development that borrow the most effective techniques from both the OSS and commercial worlds may lead to high performance software processes. Keywords software process, defect density, repair interval, code ownership, open source 1 INTRODUCTION The open source software "movement" has received enormous attention in the last several years. It is often characterized as a fundamentally new way to develop software [6, 15] that poses a serious challenge [16] to the commercial software businesses that dominate most software markets today. The challenge is not the sort posed by a new competitor that operates according to the same rules but threatens to do it faster, better, cheaper. The OSS challenge is often described as much more fundamental, and goes to the basic motivations, economics, market structure, and philosophy of the institutions that develop, market, and use software. The basic tenets of OSS development are clear enough, although the details can certainly be difficult to pin down precisely (see [14]). OSS, most people would agree, has as its underpinning certain legal and pragmatic arrangements that ensure that the source code for an OSS development will be generally available. Open source developments typically have a central person or body that selects some subset of the developed code for the "official" releases and makes them widely available for distribution. These basic arrangements to ensure freely available source code have led to a development process that is radically different, according to OSS proponents, from the usual, industrial style of development. The main differences usually mentioned are • OSS systems are built by potentially large numbers (i.e., hundreds or even thousands) of volunteers. • Work is not assigned; people undertake the work they choose to undertake. • There is no explicit system-level design, or even detailed design [16]. • There is no project plan, schedule, or list of deliverables. Taken together, these differences suggest an extreme case of geographically distributed development, where developers work in arbitrary locations, rarely or never meet face to face, and coordinate their activity almost exclusively by means of email and bulletin boards. What is perhaps most surprising about the process is that it lacks many of the traditional mechanisms used to coordinate software development, such as plans, system-level design, schedules, and defined processes. These "coordination mechanisms" are generally considered to be even more important for geographically distributed development than for co-located development [9], yet here is an extreme case of distributed development that appears to eschew them all. Despite the very substantial weakening of traditional ways of coordinating work, the results from OSS development are often claimed to be equivalent, or even superior to software developed more traditionally. It is claimed, for example, that defects are found and fixed very quickly because there are "many eyeballs" looking for the problems (Eric Raymond calls this "Linus's Law" [15]). Code is written with more care and creativity, because developers are working only on things for which they have a real passion [15]. It can no longer be doubted that OSS development has produced software of high quality and functionality. The Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. ICSE 2000, Limerick, Ireland © ACM 23000 1-58113-206-9/00/06 $5.00