Selection and Integration of Open Source Components - A Survey in Norwegian IT Industry
MetadataVis full innførsel
Open Source Software (OSS) has seen increased adoption in most industries over the past decades, and the open and flexible character of OSS has resulted in that it has become a viable alternative to closed software. The advantages of software reuse as opposed to internal development are obvious; reuse may i.a. assist in reducing resource consumption (time and cost) and shorten time-to-market. However, without efficient processes for OSS component selection, the resources and time spent on selecting suitable products may easily offset the advantages. The purpose of this study is to explore the industrial practice of OSS component selection and knowledge management, as it is clear that identification of possible best practices may be beneficial for companies in the industry. The problem description raises two main research questions: - How do OSS integrators perform OSS component selection to ensure system viability?- How is OSS related knowledge managed within organisations? The research questions are answered through the new empirical knowledge derived from a descriptive survey with participants from the Norwegian IT and software sectors. The other contributions to this thesis include a general state-of-the-art literature study of software development, open source, and formal OTS selection methods proposed in the literature, as well as the development of two software programs for The Department of Geomatics and Information Technology at The Geological Survey of Norway (NGU). The main findings are that companies most often perform component selection informally and in an "ad hoc" manner, without using formal procedures. Various sources of information are utilized in order to locate alternative components, and several evaluation criteria are typically applied in the assessment process. Open source related knowledge is typically not managed in the majority of the companies, however, some maintain and reuse component specific knowledge.