Exploring knowledge management from a software engineering perspective





Software engineering, Knowledge management, Software process improvement, Knowledge sharing, AI, Software Industry


Context: The knowledge domain of software engineering (SE) gradually expands due to fast emerging technologies and complex organisational processes. The software industry represents a special focus of interest from a Knowledge Management (KM) perspective, as it is characterized by high employee turnover, a high level of outsourced projects, and an accelerated pace of technology innovations. Knowledge management can substantially influence SE knowledge's life cycle, contributing to better structuring of organisational processes of knowledge creation, knowledge transfer, and knowledge sharing. Reflecting on the trends for SE automation with artificial intelligence tools, KM approaches can enable companies and professionals to reconsider the future of SE work. Purpose: The present research aims to identify and investigate how implementing knowledge management principles and processes within the software engineering domain can facilitate the future transformation of software-related jobs. Based on a conceptual model, built upon the literature review, the paper analyses the quantitative data, collected from 91 software experts. Evaluating the impact of both organizational and domain types of SE knowledge, the discussion evaluates the unique value-adding SE processes along with models of how to explore AI applications to automate the SE domain. Results: The outcomes of the analysis identify the models of structuring knowledge management processes in SE both within the technological domain and organisational layers. The discussion section establishes suitable KM methods and approaches for supporting SE job transformation. It identifies the main knowledge management integration practices, demonstrating how combining KM with AI-based innovations may change the SE knowledge flow, improving substantially SE activities like onboarding new team members, monitoring software documentation, version control, and error tracking.