MSc dissertation: Improving the safety-critical software engineering process through the development of knowledge management capability

This is the extended abstract of my dissertation for module T802, which is the final module of my Open University  Master of Science degree in Technology Management. It was a tough module, spanning just over 12 months (including preliminary research), but at the same time was very rewarding.

Background

Software is becoming increasingly common in safety-critical products, such as aircraft control systems and medical devices, where mistakes made during development could result in death, injury or damage to the environment. These industries are highly-regulated, with manufacturers required to follow well-defined software development processes and to produce a significant amount of documented evidence at each stage.

In their seminal work in the field of knowledge management (KM), Nonaka and Takeuchi (1995) make the distinction between this type of documented knowledge, referred to as explicit knowledge, and knowledge that cannot be easily documented, referred to as tacit knowledge (see diagram below). Tacit knowledge includes the innate “know-how” of the individual worker, which can only be shared through observation or practical experience. It was found to be instrumental in the success of the companies they studied.

Since they are mandated to focus primarily on explicit knowledge, organisations producing safety-critical software therefore face unique and interesting KM challenges, where there is likely to be significant opportunity for improvement. As pointed out by Rus and Lindvall (2002), improving KM within a software engineering department can lead to decreased development time and cost, increased product quality, and allow better technical decisions to be made.

Aims and objectives

During my employment as a software engineer in an organisation that produces safety-critical software I have made several anecdotal observations of the KM challenges arising from a heavy reliance on explicit knowledge. The aim of this research was to carry out a rigorous assessment of the current situation and provide justifiable recommendations for improvement. The individual tasks performed to meet this aim were:

1. Identify common KM techniques
2. Explore current KM practices within a safety-critical software engineering department, including their effectiveness
3. Determine the barriers to KM capability improvement faced by the department
4. Formulate recommendations for improving KM capability within this context

Research method

Original data was collected and analysed using an explorative case study of a single organisation that produces safety-critical software. Qualitative data was collected through semi-structured interviews with five individuals and then analysed using thematic analysis.

The research procedures relied on a research framework based on literature review results. Firstly, the ideas of tacit and explicit knowledge (Nonaka and Takeuchi, 1995) were used to provide structure to the interviews, with interviewees being asked about an example where they had needed to find and use written information (explicit knowledge), about an example where they had needed to ask someone for help (tacit knowledge), and finally about an example where they had attempted to create or share new knowledge (either tacit or explicit knowledge).

Secondly, Ebert and Man’s (2008) software engineering knowledge classification system (see diagram below) was used to ensure that a full range of examples had been covered.

Interviewees were asked about the different sources of knowledge available to them (such as document repositories and enterprise social networks), and finally Singh and Kant’s (2007) framework of KM barriers (see diagram below) was used to highlight routes to improvement.

Results

A rich picture was created of the current KM situation within the organisation studied. In particular, seven main themes were described on the topics of: formal documentation; informal documentation; tool knowledge; inter-personal communication; the importance of experts; bringing in new knowledge; and project silos.

A set of recommendations tailored specifically to the organisation studied was then provided. These broadly fall into two categories: improving the technology supporting the management of explicit knowledge, including the governance surrounding it; and improving the organisational structure to break down project silos and therefore better support the transfer of tacit knowledge. Specific KM techniques that were recommended include the adoption of knowledge portals and communities of practice.

In a more general sense, the results also build upon the existing literature by defining new formal and informal sub-categories of explicit knowledge (see diagram below). “Formal” in this sense means that the documentation has come from an official source and has typically been created under change control and subject to peer review.

Ebert and Man’s (2008) software engineering knowledge classification system was also expanded by adding a new category relating to the tools that support the software engineering process (see diagram below).

Conclusions

The aim and objectives of the research were fully met, with a rich picture of the current KM situation within the organisation studied being described and justifiable improvements then made. While these proposed improvements are specific to the company studied and not intended to be generalizable, the research framework that was developed and the procedures followed have been described in sufficient detail that the research could be repeated in other organisations.

Further work

There are two potential strands for taking this research further.

Firstly, management within the organisation studied could decide to implement some of the proposed improvements and verify the results. This is likely to involve measuring a defined set of variables before and after the change has been implemented to gauge success.

Secondly, the research itself could be expanded further. The case study could for example be repeated in another organisation to see if any of the results are generalizable.

References

Ebert, C. and Man, J. De (2008) ‘Effectively utilizing project, product and process knowledge’, Information and Software Technology, vol. 50, no. 6, pp. 579–594.

Nonaka, I. and Takeuchi, H. (1995) The Knowledge-Creating Company, New York, NY, USA, Oxford University Press Inc.

Rus, I. and Lindvall, M. (2002) ‘Knowledge management in software engineering’, IEEE Software, vol. 19, no. 3, pp. 26–38.

Singh, M. D. and Kant, R. (2007) ‘Knowledge management barriers: An interpretive structural modeling approach’, 2007 IEEE International Conference on Industrial Engineering and Engineering Management, pp. 2091–2095.