Software engineering is knowledge-intensive work, and how to manage software engineering knowledge has received much attention. This systematic review identifies empirical studies of knowledge management initiatives in software engineering, and discusses the concepts studied, the major findings, and the research methods used. Seven hundred and sixty-two articles were identified, of which 68 were studies in an industry context. Of these, 29 were empirical studies and 39 reports of lessons learned. More than half of the empirical studies were case studies. The majority of empirical studies relate to technocratic and behavioural aspects of knowledge management, while there are few studies relating to economic, spatial and cartographic approaches. A finding reported across multiple papers was the need to not focus exclusively on explicit knowledge, but also consider tacit knowledge. We also describe implications for research and for practice.
Software engineering is a knowledge-intensive activity. For software organisations, the main assets are not manufacturing plants, buildings, and machines, but the knowledge held by the employees. Software engineering has long recognized the need for managing knowledge and the community could learn much from the knowledgemanagement community, which bases its theories on well-established disciplines such as cognitive science, ergonomics, and management.
As the field of software engineering matures, there is an increased demand for empirically-validated results and not just the testing of technology, which seems to have dominated the field so far. A recent trend in software engineering is an increased focus on evidence-based software engineering, EBSE [43,67]. Since the volume of research in the field is expanding constantly, it is becoming more and more difficult to evaluate critically and to synthesise the material in any given area. This has lead to an increased interest in systematic reviews (SR) [66] within the field of software engineering.
In this article, we report on a systematic review of empirical studies of knowledge management in software engineering. Our goal is to provide an overview of empirical 1. What are the major knowledge management concepts that have been investigated in software engineering?
What are the major findings on knowledge management in software engineering?
What research methods have been used within the area so far? Our target readership is three groups that we think will be interested in an overview of empirical research on knowledge management in software engineering: (1) researchers from software engineering who would like to design studies to address important research gaps, and identify relevant research methods; (2) researchers on knowledge management in general, who would be interested in comparing work in the software engineering field to other knowledge-intensive fields; and (3) reflective practitioners in software engineering, who will be interested in knowing what knowledge management initiatives have been made in software companies, or quickly identifying relevant studies, and the major findings and implications from these.
The remainder of this article is structured as follows. Section 2 presents the background and general theories on knowledge management. Section 3 describes the research method that we used to select and review the data material for our research, and presents our chosen framework for analysis. Section 4 presents the results of the systematic review according to our chosen framework. In Section 5, we discuss the findings and their implications. For research, we identify what we belive are the most important research gaps. For practitioners, we provide advice on how to use the results in practice. Section 6 concludes.
In this chapter, we first give a brief background on knowledge management, then give an overview of theories often referred to in the knowledge management literature.
Finally, we give an overview of existing work on knowledge management in software engineering.
Knowledge management is a large interdisciplinary field. There is, as a consequence, an ongoing debate as to what constitutes knowledge management. However, it is beyond the scope of this article to engage in that debate. For our purposes, it is sufficient to cite some definitions that are in common use. Davenport has defined knowledge management as “a method that simplifies the process of sharing, distributing, creating, capturing and understanding of a company’s knowledge” [28].
A related term is organisational learning. What does it mean to say that an organisation as a whole learns? According to Stata, this differs from individual learning in two respects [112]: first, it occurs through shared insight, knowledge and shared models; second, it is based not only on the memory of the participants in the organisation, but also on “institutional mechanisms” such as policies, strategies, explicit models and defined processes (we can call this the “culture” of the organisation). These mechanisms may change over time, what we can say is a form of learning.
Knowledge management has received much attention in various fields, which is demonstrated by the publication of two “handbooks” [33,45], one encyclopaedia [106], and numerous books [25,28,109].
Hanssen et al. [55] refer to two main strategies for knowledge management:
• Codification -to systematise and store information that constitutes the knowledge of the company, and to make this available to the people in the company.
• Personalisation -to support the flow of information in a company by having a centralised store of information about knowledge sources, like a “yellow pages” of who knows what in a company.
Earl [44] has further classified work in knowledge management into schools (see Table 1). The schools are broadly categorized as “technocratic”, “economic” and “behavioural”. The technocratic schools are 1
This content is AI-processed based on open access ArXiv data.