Open source software (OSS) development has been a trend parallel to that of agile software development, which is the highly iterative development model following conventional software engineering principles. Striking similarities exist between the two development processes as they seem to follow the same generic phases of software development. Both modes of development have less emphasis on planning and design and a more prominent role for implementation during the software engineering process. This chapter expounds on this connection by adopting an agile perspective on OSS development to emphasize the similarities and dissimilarities between the two models. An attempt is first made to show how OSS development fits into the generic agile development framework. Then, the chapter demonstrates how the development process of Mozilla and Apache as two of the most famous OSS projects can be recast within this framework. The similarity discussed and illustrated between agile and OSS development modes is rather limited to the mechanics of the development processes and do not include the philosophies and motivations behind development.
Key Terms in this Chapter
Apache HTTP Server: An open source Web server for almost all platforms. It is the most widely used Web server on the Internet. Apache is developed and maintained by the Apache Software Foundation.
Iterative Development: The second phase in agile development consisting of repeated cycles of simple design, coding, testing, a small release, and requirements refinement.
Mozilla: Generally refers to the open source software project founded to create Netscape’s next-generation Internet suite. The name also refers to the foundation responsible for overseeing development efforts in this project. The term is often used to refer to all Mozilla-based browsers.
Problem Exploration: The first phase in the agile development model that includes overall planning, requirements determination, and scheduling.
Final Release: The fourth (last) phase in agile development when changes can no longer be introduced to the requirements or operating conditions.
Agile Software Development: A software development methodology characterized by continuous adaptation to changes in software requirements, operating environments, and the growing skill set of developers throughout the project.
Open Source Software (OSS): Software whose source code is freely available on the Internet. Users can download the software and use it. Unlike proprietary software, users can see the software’s source code, modify it, and redistribute it under an open source license, acknowledging their specific contribution to the original.
Version Control: The third phase in agile development wherein at the end of one iteration or a few concurrent or consecutive iterations, changes are committed to the final program and documented, delivering a working version to the customer (possibly installed for use until development ceases).