Article Preview
TopIntroduction
As conventional software development methodologies struggle to produce software within budget limits and set deadlines, and that fully satisfies user requirements, alternative development models are being considered as potentially more effective. One such model comes under the general umbrella of agile software development, which prescribes a highly iterative and adaptive development process that adapts not only to the changing software requirements and operating environments, but also to the “collective experience and skills” of people working in the development teams (Turk, France, & Rumpe, 2005). Proponents of agile methods advocate the superiority of their model in delivering quality software, produced at an economic cost within a fast development period and meeting evolving customer requirements.
A parallel trend to agile software development has been that of open source software (OSS) development, which looks a priori as a random and chaotic process harnessing the abundance of programmers on the Internet to produce software that is deemed of very high quality. However, upon a closer look at both processes, agile and open source, striking similarities exist in terms of the development process itself. Indeed some research has already pointed out that OSS development, although driven by different motivations and economic considerations than agile methods, follows the same generic phases of agile methodologies (Warsta & Abrahamsson, 2003). In this article, we expound on this connection by adopting an agile perspective on OSS development. This is not to confuse the two paradigms, which remain distinct, but to emphasize the similarities and dissimilarities between the two approaches to software engineering.
In the first part of the article, we attempt to retrofit OSS development within a generic agile software development framework. In the second part, we demonstrate through the example of two landmark open source projects, Mozilla and Apache, how OSS development processes can be recast within the generic agile development model.