Knowledge Management in Software Engineering :Results

By June 20, 2015

We found a total of 68 papers that we considered to lie within our scope for this review, 29 of which we considered to be of sufficient quality to be categorized as empirical studies and 39 as reports of lessons learned. The result of our categorization is presented in Table 3. For a complete listing of papers in each category, see the appendix. Within Earl’s framework, we found a heavy concentration on the technocratic schools and a fair mention of the behavioural school. We did not find any papers relating to the commercial school with our search criterion. Within the technocratic schools, systems and engineering stand out as areas that have received much attention. Within the behavioural schools, organizational and strategic have received the most attention.

Four of the empirical studies did not fit into Earl’s framework. These were classified as studies on the impact of knowledge management initiatives and on knowledge management per se. Thus, we ended up with 25 studies classified as empirical within the framework. Of the 39 reports of lessons learned, two belonged to two categories, which is why we ended up with a sum of 41 for the reports of lessons learned in the table.

Looking at the papers by year of publication, presented in Figure 1, we notice an increasing interest in the area from 1999 onwards. We also notice a shift from more papers on lessons learned to empirical papers from 2003 onwards. The apparent decrease in attention in 2006 is due to our covering only the first third of this year, since our search was conducted in August.

To obtain an overview of the research methods used within this field, we used the classification presented in Glass et al. [46]. This was carried out on the 25 papers classified as empirical studies. The result is presented in Table 4. See the appendix for a complete listing of which paper was classified in which category.
In the following subsections, we briefly present the context and concepts within our major categories.

1 Technocratic schools
The technocratic schools are based on information or management technologies, which largely support and, to different degrees, condition employees in their everyday tasks. We identified a total of 19 empirical studies and 29 papers on lessons learned in this category. The main focus is on the engineering and systems schools.
1.1 Systems
As defined by Earl, the systems school is built on the underlying principle that knowledge should be codified in knowledge bases. This is what Hansen et al. refer to as the “codification strategy”, and what Nonaka and Takeuchi refer to as externalization.

This school is the longest established school of knowledge management, and it is in this category we found the oldest papers in our search. Most of the papers that were excluded would have been placed in this category, if they had contained empirical results from industry. They could mainly be classified as conceptual analysis and concept implementation, according to Glass’s definition. In total, we classified six papers as empirical in this school, and 20 as lessons learned. The empirical papers in this category can broadly be defined as either dealing with the development of knowledge bases or the use of such bases. In what follows, we briefly present the major concepts studied in the empirical papers.

In [20], Chewar and McCrickard present their conclusions from three case studies investigating the use of their knowledge repository. On the basis of their case studies, they present general guidelines and tradeoffs for developing a knowledge repository. In [17], Bjørnson and Stålhane follow a small consulting company that wanted to introduce an experience repository. On the basis of interviews with the employees, they draw conclusions about attitudes towards the new experience repository, and the content and functionality preferred by the employees. Barros et al. [11] investigate how risk archetypes and scenario models can be used to codify reusable knowledge about project management. They test their approach by an observational analysis in industry. They also describe a feasibility study within an academic environment.

Concerning the actual usage of experience repositories or knowledge bases, Dingsøyr and Røyrvik [30] investigate the practices in a medium-sized software consulting company where knowledge repositories are used in concrete work situations. They found several distinct ways of using the tool and highlight the importance of informal organization and the social integration of the tool in daily work practices. A more formal approach to knowledge management tools is found in [98], where Skuce describes experiences from applying a knowledge management tool in the design of a large commercial software system. Concerning long-term effects of experience repositories, Kurniawati and Jeffrey [64] followed the usage of a combined electronic process guide and experience repository in a small-to-medium-sized software development company for 21 weeks, starting a year after the tool was introduced. They conclude that tangible benefits can be realized quickly and that the tool remains useful with more benefits accruing over time.
1.2 Cartographic
The principal idea of the cartographic school is to make sure that knowledgeable people in an organization are accessible to each other for advice, consultation, or knowledge exchange. This is often achieved through knowledge directories, or so-called ”yellow pages”, that can be searched for information as required.

We found only one empirical paper within this school and no papers on lessons learned. In [29], Dingsøyr et al. examine a skills management tool at a medium-sized consulting company. They identify four major usages of the tool and point out implications of their findings for future or other existing tools in this category.
1.3 Engineering
The engineering school of knowledge management is a derivative or outgrowth of business process reengineering. Consequently it focuses on processes. According to our classification, the largest amount of empirical papers came from this school. Two major categories can be identified. The first contains work done by researchers who investigate the entire software process with respect to knowledge management. The second contains work done by researchers who focus more on specific activities and how the process can be improved within this activity.

Baskerville and Pries-Heje [14] used knowledge management as the underlying theory to develop a set of key process areas to supplement the Capability Maturity Model (CMM) [82] in a Small and Medium sized Enterprise (SME) software development company. Realising that the CMM did not fit well with an SME company, they helped their case companies to develop new key process areas that focused on managing their knowledge capability. Arent et al. [6] address the challenge of creating organizational knowledge during software process improvement. They argue for the importance of creating organizational knowledge in Software Process Improvement (SPI) efforts and claim that its creation is a major factor for success. On the basis of an examination of several cases, they claim that both explicit and tacit knowledge are required, no matter what approach is pursued. Segal [96] investigates organizational learning in software process improvement. Using a case to initiate and implement a manual of best practice as a basis, she observed that the ideal and actual scenarios of use differed and identified possible reasons for the difference. In [45] Folkestad et al. studied the effect of using the rational unified process as a tool for organizational change. In this case, it was used to introduce development staff to a new technology and methodology. Folkestad et al. concluded that the iterative approach of the unified process had obvious effects on organisational and individual learning. The unified process also resulted in new patterns of communication and a new division of labour being instituted, which had a significant effect on the company. Wangenheim et al. [104] report on their experiences of defining and implementing software processes. They confirm what others have experienced, that it is possible to define and implement software processes in the context of small companies in a beneficial and cost-effective way.

In the papers that focused on specific activities within the process, we identified four major areas: formal routines, mapping of knowledge flows, project reviews, and social interaction. Many of these processes are aimed at stimulating several ways of learning, as, for example, Kolb suggests.

In [22] Conradi and Dybå report on a survey that investigated the utility of formal routines for transferring knowledge and experience. Their main observation was that developers were rather sceptical about using written routines, while quality and technical managers took this for granted. Given this conflict of attitudes, they describe three implications for research on this topic.

Hansen and Kautz [48] argue that if software companies are to survive, it is critical that they improve continuously the services that they provide. Such improvement depends, to a great extent, on the organization’s capability to share knowledge and thus on the way knowledge flows in an organization. To investigate knowledge flow, they introduced a tool to map the flows of organisational knowledge in a software development company. Using their new method, they identify potential threats to knowledge flows in an organisation. Also using flow diagrams, Al-Shehab et al. [2] describe how learning from analyses of past projects and from the issues that contributed to their failure is becoming a major stage in the risk management process. They introduce causal mapping as a method to visualise cause and effect in risk networks. They claim that their method is useful for organisational learning, because it helps people to visualise differences in perceptions.

In [27], Desouza et al. describe two ways of conducting project postmortems. They stress that learning through postmortems must occur at three levels: individual, team, and organization. The paper describes guidelines for when to select different kinds of postmortem, depending on the context and the knowledge that is to be shared. The authors also argue that postmortems must be woven into the fabric of current project management practices. Salo [90] also studies postmortem techniques and concludes that existing techniques lack a systematic approach to validating iteratively the implementation and effectiveness of action taken to improve software processes. Salo studies the implementation of a method to remedy this and observes that the organisational level can only benefit from the learning of project teams if the knowledge and reasoning behind the improvements to processes are converted into an explicit format such that it can be utilized for learning at the organisational level.

In [76], Melnik and Maurer discuss the role of conversation and social interaction effective knowledge sharing in an agile process. Their main finding suggests that the focus on pure codification is the principal reason that Tailoristic teams fail to share knowledge effectively. Moving the focus from codification to socialisation, Bjørnson and Dingsøyr [16] investigated knowledge sharing through a mentor programme in a small software consultancy company. They describe how mentor programmes could be changed to improve the learning in the organization. They also identify several unofficial learning schemes that could be improved.
4.2 Behavioural schools
The behavioural aspects of knowledge management are covered in three schools in Earl’s framework: the organizational, spatial, and strategic schools. In our review, we found three empirical studies and two reports of lessons learned in the organizational school, no empirical study and one report of lessons learned in the spatial school, and three empirical studies and nine reports of lessons learned in the strategic school. We present the main concepts from the organizational and strategic schools.
2.1 Organizational
The organizational school focuses on describing the use of organizational structures (networks) to share or pool knowledge. These structures are often referred to as “knowledge communities”. Work on knowledge communities is related to work on communities of practice as described in Section 2.2.

The role of networking as an approach to knowledge management has been investigated in three settings where software is developed. Grabher and Ibert [47] discuss what types of network exist in companies, where one case is a software company based in Germany. Mathiassen and Vogelsang [75] discuss how to implement software methods in practice and use two concepts from knowledge management: networks and networking. The network perspective emphasizes the use of technology for sharing knowledge, while networking focuses on trust and collaboration among practitioners involved in software development. Nörbjerg et al. [80] discuss the advantages and limitations of knowledge networks. They base their discussion on an analysis of two networks related to software process improvement in a medium-sized software company in Europe.
2.2 Strategic
In the strategic school, knowledge management is seen as a dimension of competitive strategy. Skandia’s views are a prime example [100]. Developing conceptual models of the purpose and nature of intellectual capital has been a central issue.

One important issue in the literature on knowledge management has been to identify the factors that lead to the successful management of knowledge. Feher and Gabor [43] developed a model of the factors that support knowledge management. The model was developed on the basis of data on 72 software development organizations that are contained in the European database for the improvement of software processes.

Another issue of strategic importance is the processes that are in place to facilitate learning. Arent and Nørjeberg [5] analysed three industrial projects for the improvement of software processes, in order to identify the learning processes used. They found that both tacit and explicit knowledge were important for improving practice, and that improvement requires ongoing interaction between different learning processes.

Trittmann [102] distinguish between two types of strategy for managing knowledge: “mechanistic” and ”organic”. Organic knowledge management pertains to activities that seek to foster innovation, while mechanistic knowledge management aims at using existing knowledge. A survey of 28 software companies in Germany supported the existence of two such strategies. This work parallels the works of Hansen et al. on codification and personalization as important strategies for managing knowledge in the field of management science.
3 Knowledge management in general
Some studies could not be classified using Earl’s framework. These studies can be placed in a broad category that encompasses works that seek to identify the impact of knowledge management initiatives (two empirical studies), and works that investigate knowledge management per se (two empirical studies).
3.1 The impact of knowledge management initiatives
Ajila and Sun [1] investigated two approaches to delivering knowledge to software development projects: ”push” and ”pull”. “Push” means using tools to identify and provide knowledge to potential users. “Pull” means that users themselves have to use repositories and other tools to identify relevant knowledge. On the basis of a survey of 41 software companies in North America, the authors claim that pulling leads to more effective software development.

Ravichandran and Rai [86] studied two models for how the embedding and creation of knowledge influence software process capability. Embedding refers to the process of employing knowledge in standard practices, for example through making work routines, methods and procedures. They found support for a model where knowledge creation has an effect on process capability when the knowledge is embedded after it is created. This means that knowledge has to be internalized before it can be used to improve processes. The study was done as a survey of 103 Fortune 1000 companies and federal and state government agencies in the US.
3.2 Knowledge management per se
Ward and Aurum [105] describe current practices for managing knowledge in two Australian software companies and explain how leadership, technology, culture, and measurements enable knowledge to be managed effectively and efficiently. They found leadership to be the most significant positive factor for the management of knowledge, but that the tools, techniques, and methodologies that the companies were using were not adequate for managing knowledge effectively.

Desouza et al. [26] examined what factors contribute to the use of knowledge artefacts in a survey of 175 employees in a software engineering organization. They specifically looked at factors that govern the use of explicit knowledge. They found that the following factors relate to the use of explicit knowledge: perceived complexity, perceived relative advantage, and perceived risk.