An Agile Perspective on Open Source Software ... - Semantic Scholar

Report 1 Downloads 143 Views
52 International Journal of Open Source Software and Processes, 4(3), 52-65, July-September 2012

An Agile Perspective on Open Source Software Engineering Sofiane Sahraoui, American University of Sharjah, Sharjah, UAE Noor Al-Nahas, American University of Sharjah, Sharjah, UAE Rania Suleiman, American University of Sharjah, Sharjah, UAE

ABSTRACT 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 article 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 article 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. Keywords:

Agile Software Development, Development Processes, Implementation, Open Source Software (OSS), Software Engineering Principles

INTRODUCTION 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

DOI: 10.4018/ijossp.2012070105 Copyright © 2012, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global is prohibited.

International Journal of Open Source Software and Processes, 4(3), 52-65, July-September 2012 53

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.

BACKGROUND An Agile Perspective on OSS Development Agile development implies developing simple designs and starting the coding process immediately. Frequent stops are made to assess the coding process and gather any new set of features or capabilities from clients in view of incorporating them into the software through iterations rather than following a single formal requirements document (Lindquist, 2005). Some of the most prominent agile software development methods are extreme programming (XP), Scrum, feature-driven development (FDD), and adaptive systems development (ASD; Ambler, 2002). Through plotting these agile software development methods into a generic framework for software development (see Table 1), we identified four common phases to

all agile processes, which we termed the generic agile development model (see Figure 1). These phases are outlined as follows: 1. Problem exploration: Includes overall planning, requirements determination, and scheduling; 2. Iterative development: Repeated cycles of simple design, coding, testing, a small release, and refining requirements; 3. Version control: At the end of one iteration or a few concurrent or consecutive iterations, changes are committed to the final program and documented, probably delivering a working version to the customer (possibly installed for use until development ceases); 4. Final release: When changes can no longer be introduced to the requirements or operating conditions.

Open Source Development from an Agile Perspective In general, the fundamental difference between open source and conventional software development is that the extremely emphasized and revisited steps of planning, analysis, and design in software engineering are not part of the general open source life cycle; the “initial project founder” is the one who conducts these steps in a brief and oversimplified manner (O’Gara, 2002). OSS development consists of seven visible phases: problem discovery, volunteer finding, solution identification, code development and testing, code change review, code commit and documentation, and release management (Sharma, Sugurmaran, & Rajagopalan, 2002). Problem exploration in agile development corresponds to open source problem discovery, volunteer finding, and solution identification combined. Agile iterative development corresponds to code development and testing, and code change review in OSS development. This is where the two processes fully meet. Version control in agile methods corresponds to code

Copyright © 2012, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global is prohibited.

12 more pages are available in the full version of this document, which may be purchased using the "Add to Cart" button on the product's webpage: www.igi-global.com/article/an-agile-perspective-on-opensource-software-engineering/101206?camid=4v1

This title is available in InfoSci-Journals, InfoSci-Journal Disciplines Computer Science, Security, and Information Technology. Recommend this product to your librarian: www.igi-global.com/e-resources/libraryrecommendation/?id=2

Related Content Developing a Dynamic and Responsive Online Learning Environment: A Case Study of a Large Australian University Janet Buchan (2010). International Journal of Open Source Software and Processes (pp. 32-48).

www.igi-global.com/article/developing-dynamic-responsive-onlinelearning/41952?camid=4v1a Software Reuse in Open Source: A Case Study Andrea Capiluppi, Klaas-Jan Stol and Cornelia Boldyreff (2011). International Journal of Open Source Software and Processes (pp. 10-35).

www.igi-global.com/article/software-reuse-open-source/68148?camid=4v1a Measuring Language Learners' Speaking Proficiency in a Second Language Using Economical Digital Tools Peter B. Swanson (2015). Open Source Technology: Concepts, Methodologies, Tools, and Applications (pp. 1504-1523).

www.igi-global.com/chapter/measuring-language-learners-speakingproficiency-in-a-second-language-using-economical-digitaltools/120984?camid=4v1a

Higher Education and FOSS for E-Learning: The Role of Organizational SubCultures in Enterprise-Wide Adoption Shahron Williams van Rooij (2011). Free and Open Source Software for E-Learning: Issues, Successes and Challenges (pp. 55-74).

www.igi-global.com/chapter/higher-education-fosslearning/46307?camid=4v1a