Managing Knowledge Resources in Agile Software Development

Abstract: Context: Many software companies adopt Agile Software Development (ASD) principles through various methods, aiming to respond rapidly to market changes or internal transformations. Agile principles prioritise informal communication between people over documentation to bring more flexibility and readiness when welcoming changes, posing pressure on how knowledge, a strategic resource, is shared and applied. Many knowledge resources remain intangible in these contexts, which poses challenges to resource management because knowledge is difficult to reproduce and manage, requiring lots of effort to understand what should remain tacit and what should be captured explicitly as artefacts. Objective: This thesis aims to contribute to a better understanding of knowledge resources in agile software project environments and provide guidance on effectively managing them. Method: We follow mostly a qualitative approach to investigate knowledge resource management. We adhere to social constructivism research, which notes that social phenomena undergo constant changes and are affected by human interaction. As qualitative and quantitative methods of investigation, we utilised literature reviews, grounded theory, survey and a case study.Results: This thesis provides an empirical understanding of how knowledge resources are used in practice and what hinders their effective management in ASD environments. More specifically, we focus on Property-based Resources (PBRs) such as Boundary Artefacts (BAs), examining inefficiencies in their content management and providing recommendations. We synthesised evidence from the literature to show the proportions of knowledge management practices utilised in ASD environments and the knowledge process they focus on. Through a grounded theory study, we identified Knowledge-based Resources (KBRs) that support changes in agile environments in the Knowledge-push theory. In this same study, we identified inefficiencies in converting KBRs into PBRs. This evidence led us to a case study in which we investigated the causes and effects of trust in BAs. The results have contributed to understanding the favourable factors that make stakeholders feel confident in utilising BAs and also pointed to the implication of decreased trust in software projects. Such negative implications can be mitigated by applying our developed and validated guideline that supports the creation of BAs in software engineering, which was perceived as being able to increase the trustworthiness of BAs. Lastly, in a concise format, we gathered the evidence that we collected through this doctoral journey and offered a simplified discussion about knowledge resources in an agile context. We explore their types, challenges and potential solutions to effectively manage knowledge, especially what is stored in artefacts.Conclusions: We clarify the concept of KBRs, identify them, and explain how they support changes in agile contexts. In this process, we uncover the inefficiencies in converting KBRs into PBRs. We also provide guidance on effectively managing knowledge resources in software project environments, which can be helpful for software organisations. For example, (i) understanding how trust aspects such as reliability, predictability, and functionality affect practitioners' confidence in BAs, (ii) providing a structured guideline that helps practitioners create BAs, (iii) incorporating more formal practices to manage BAs that do not necessarily abandon agile flexibility to deal with changes. 

  This dissertation MIGHT be available in PDF-format. Check this page to see if it is available for download.