Collaborative learning in software development: An investigation of characteristics, prerequisites and improvement
MetadataVis full innførsel
Collaborative learning integrates individual and collective learning with practical activity. The great demand for learning in software development practice makes collaborative learning attractive. However, social and technical conditions complicate software organizations’ effort to improve collaborative learning capabilities. In particular, specialization through social structures and technical systems restrict software practitioners’ opportunities for collaborative learning. Hence, the software organization’s learning potential is not fully utilized which in turn may constitute a bottleneck to innovation and a threat to competiveness. Existing research from a range of domains provides insights into collaborative learning. This suggests that collaborative learning in software development should be subjected to integrative investigations. Therefore, the dissertation presents an open-ended, integrative exploration of collaborative learning. The main objective is to increase understanding of how collaborative learning capabilities can be improved in software development practice. Two research questions guided the investigation: What are the characteristics of collaborative learning in software development? What are the prerequisites for collaborative learning in software development? Using a literature study covering relevant fields such as software process improvement, team research, organizational learning, organization science and socio-technical research, I develop a conceptual framework that explains how collaborative learning in software development can be usefully seen as a variegated phenomenon with a number of core elements aligned within the pillars characteristics, prerequisites and considerations for improvement. Subsequently, I discuss how empirical results from three investigations of collaboration and learning within Norwegian software organizations elaborate the framework. The discussion extends the framework with empirical findings to provide a preliminary conceptual framework for collaborative learning in software development which includes five characteristics; (1) collective, situated performance, (2) purposeful, (3) cooperative behavior, (4) coordinated action, and (5) empowerment. There are five identified prerequisites; (1) participation, (2) opportunities for learning, (3) knowledge diversity, (4) knowledge redundancy, and (5) proximity; physical or virtual. At last, there are three identified considerations for improvement; (1) a re-orientation of governing values, (2) creating and exploring opportunities for collaborative learning, and (3) socio-technical reconciliation. The preliminary conceptual framework for collaborative learning in software development is a contribution to existing literature on practice-based learning and offers a comprehensive theoretical platform within which collaborative learning in software development can be understood and improved. The concluding arguments discuss the contributions, the limitations of the research and then discuss implications for further research and practice.