Applying Open Source and Agile Approaches to Software Development Process
Fernando Almeida and Rui Gonçalves
Description
Successful projects taken in the past years have demonstrated the fact that the Open Source Software (OSS) development paradigm is an important and valuable complement to the manifold existing software development methods. During the same period also the agile movement has started to gain ground in several different manifestations. Our purpose is to discuss whether these methods have something in common and could benefit from each other. Additionally, we intend to analyze and mitigate some of the current tension points between OSS and Agile approaches. Agile methodologies and open source may, at first glance, seem to be radically different. Agile methodologies are thought of as being about small, undividable teams and open source as being about large, distributed ones. A company might expect that the benefits of one are pretty different from the benefits of the other, and therefore, it would take a sharp choice to be made between them. However, in fact, this choice has more to do with the type of interactions between the developers and final users, the diversity of stakeholders, and the transparency of the process to the outside world than with the philosophy of design and development. Accordingly, and looking to these aspects, both approaches share many principles and values.
The adoption of Agile development processes is increasing, but there are still many who doubt that they are practical for large projects. Corporate IT teams should evaluate common practices of Open Source and Agile development that together could be suitable for large-scale and distributed basis projects. Firstly, it is important to guarantee that the software is released early and often to deliver value to customers in the beginning and to let them provide more timely feedback. Another important aspect is the formal involvement of users throughout the development life cycle. Additionally, the collective code ownership, which is a cornerstone principle of both Open Source development and eXtreme Programming (XP), allows developers to improve their peers’ code that consequently will improve the overall quality of the codebase. Finally, the continuous integration and automated testing are two software engineering practices adopted by OSS and Agile approaches that conduce to low development cycles and high software quality. Besides, in our paper we intend to discuss some current tension points between OSS and Agile. Among them we highlight the monitoring of developers, fixed schedules, quality assurance processes, remote communication and control relinquishing. We intend to propose an approach to mitigate them that will ease the adoption of Agile and OSS methodologies in a corporate environment.
Results/Conclusions
It has been argued that the OSS development differs from the agile development mode in philosophical, economical, and team structural aspects we have shown that the OSS develop-ment method is rather close to the definition of an agile soft-ware development method. Geographically and culturally dis-persed organizations could benefit from analyzing the pros and cons of the different OSS paradigm, and adapt the most prominent solutions into use in their specific context of software development.
There are some tension points between OSS development and agile software development, which may be attributed to two fundamental differences between the cultures in terms of developers’ location and voluntary versus remunerated work. We introduced a list of possible adaptations that need to be addressed in order to gain synergy between agile and OSS. Some of these elements include the monitoring of developers, fixed time schedule, quality assurance process, adapting to remote communication and revision of developers' metrics. This list doesn’t intend to be exhaustive, instead it offer a starting point for a deeper analysis of the contention points when reconciling these approaches. This adaptation to both ap-proaches may also be facilitated through the use of appropriate technological tools. An assessment of the requirements of such tools would be an interesting future work.