Exploring Knowledge Sharing in Software Development Industry: A Systematic Review on Influencing Factors and Practical Implementations

Abstract


A. Introduction
Global Software Development (GSD) has emerged as a promising software development paradigm that has been adopted by organizations and companies worldwide [1].GSD offers many advantages, including the ability to align strategy of children company to its headquarters, achieving several advantages such as cost advantages across different region, maintain closer relationship to the customer, creating new collaboration opportunities, and access to a worldwide pool of software development talents [2].However, on the other hand, GSD itself presents some significant challenges in the implementation.These include increased project team complexity, potential risks associated with compromised software quality, and change management difficulties.
Those challenges are closely related to collaboration within software development teams.A problem in collaboration can lead to issues within the team as a whole.One of the important factor of collaboration in software development is knowledge sharing.Software development in general is a field that relies on extensive knowledge both at an individual and collective level as a team [1].The presence of technical complexity can pose some challenges in the process of knowledge sharing.
Organizations face substantial challenges in knowledge sharing, primarily attributed to the considerable expenses and employees' reluctance to adopt new systems [3].Additionally, the knowledge acquired might not be universally applicable, as it can vary between companies, leading to a lack of standardization in shared knowledge.Furthermore, employees often prefer to keep their knowledge, hoping for personal recognition or rewards, creating an obstacle to seamless knowledge dissemination.The departure of disgruntled employees, who either leak knowledge or leave the job, poses a considerable risk, resulting in valuable knowledge loss for the organization [4].
It is widely acknowledged that the failure to share essential knowledge, beyond core competencies and skills, hinders an organization's ability to meet customer expectations, highlighting the urgency of addressing knowledge sharing challenges [5].In dynamic and information-intensive environments, knowledge sharing emerges as a crucial factor for organizational success [6].Sharing knowledge related to various aspects of development among team members, such as project plans, technical documents, and discussions, not only prevents the recurrence of mistakes but also reduces reliance on a few individuals possessing critical knowledge.This varied approach enhances decision-making processes by emphasizing the significance of comprehensive practices and strategies for sharing knowledge [7].
Considering these challenges and potential advantages, organizations need to promptly prioritize comprehending the factors that influence knowledge sharing behavior and implementing practices that are effective.Failure to do so could result in missed opportunities, decreased efficiency, and a diminished ability to meet the ever-growing demands of customers and the competitive business landscape.Therefore, the aim of this study was to systematically review the literature to investigate the factors influencing and the practical implementation of knowledge sharing within the software development industry.Hence, the research questions (RQ) of this paper were formulated as follows.
RQ1: What are the factors influencing knowledge sharing behavior in the software development industry?RQ2: What are the common practical implementations of knowledge sharing in software development industry?
This article is organized into five parts.The first section introduces the research, while the second section presents the theories and literature utilized.The third section descibres the methodology used in this research, and the fourth section covers the findings and analysis.Lastly, the fifth section encompasses the conclusion and future work associated with this study.

B. LITERATURE REVIEW 1. Knowledge Sharing
Knowledge sharing constitutes an integral component of the knowledge management process, involving the communication of tacit or explicit knowledge to fellow individuals [8].In an organization context, knowledge sharing refers to employees or teams within an organization that exchange and discussing knowledge within and or across the organization [9].The knowledge sharing process can be facilitated through various channels such as discussions, conferences, and knowledge bases [8].
Effective knowledge sharing can offer significant benefits to the organizations that implement it.Knowledge sharing facilitates the accessibility of strategic knowledge across all levels within the company [10].This process has the potential to enhance the quality of innovations generated by individuals, teams, and the entire organization [11].On the other hand, to ensure effective knowledge sharing it requires organizations with adequate internal capabilities [12].Therefore, knowledge sharing also presents challenges that organizations need to address.
One of the significant challenges in implementing knowledge sharing is encouraging people to actively participate [8].For example, people may feel reluctant to contribute their knowledge to a repository.Therefore, organizations must guarantee the efficient functioning of the knowledge sharing process within their structure to elevate performance and foster innovation results [13].

Knowledge Sharing in Software Development
The software development industry is a dynamic field that plays a crucial role in facilitating the creation, storage, retrieval, sharing, and application of knowledge.This knowledge-driven industry operates with the goal of achieving various industrial objectives [14].The software development process itself can be seen as a cohesive sequence of activities that work together to create software.These activities revolve around key elements such as gathering information, planning, constructing software, and adapting to feedback.The purpose of this iterative process is to develop software that meets the expectations of stakeholders, customers, and users at large [15].
Software development companies are often referred to as "knowledgecreating companies" because they rely on the accumulation and integration of customer knowledge, organizational knowledge, and employee knowledge to develop products and services for the market.This knowledge accumulation and innovation are essential for staying competitive and meeting the ever-evolving demands of the industry [9], [16].The software development industry succeeds by collecting and using knowledge from different sources to drive continuous improvement and innovation.
The development of processes emphasizes the importance of teamwork and relies on a substantial volume of knowledge in the perspective of software process improvement.Therefore, effective knowledge sharing among team members becomes essential [7], [17].Collaboration is a key aspect of software development, requiring active participation from all individuals involved in the process [18].Success in software development depends on acquiring knowledge, sharing information, and minimizing communication breakdowns.This means that expertise is required from various stakeholders, ranging from business users to developers [18], [19].Sharing knowledge is essential in producing top-notch software that meets the needs of business users.

Knowledge Sharing Influencing Factors Categorization
Knowledge sharing, as one of the most crucial factors in producing highquality software, certainly faces some challenges in its practice.The knowledge sharing process is inseparable from the roles of employees involved in the team and also the top management that overseeing the team [6].There are many factors that influence knowledge sharing itself.Study [20] categorized factors influencing knowledge sharing into the following three levels: individual, organizational, and technological.
At the individual level, the factors are primarily associated with what motivates or hinders someone in the knowledge sharing process.At the organizational level, influencing factors generally relate to the culture of the organization, its environment, and the organization's characteristics.Lastly at the technological level, it ultimately involves employing technology and information systems as tools to simplify the knowledge sharing process.The categorization of knowledge sharing factors using this three-level concept has also been adopted in other studies before [6], [13].

C. Research Method
This study employed the systematic literature review (SLR) method, a technique used to identify, assess, and understand all relevant studies on a particular topic or question [21].SLR was chosen due to its ability to summarize empirical evidence, identify research gaps, and provide areas for further investigation [21].Specifically, this research used Preferred Reporting Items for Systematic Reviews and Meta-analyses (PRISMA) method for the SLR process, which involves four main stages: identification, screening, eligibility, and included [22].The complete stages of SLR for this study were depicted in Figure 1.

Identification
The initial stage of the SLR involved planning, which aimed to establish objectives, formulate problems, and develop review protocols.This stage consisted of four steps, which were identifying research questions, defining a search strategy, determining inclusion and exclusion criteria, and specifying criteria for literature quality assessment.

Figure 1. Systematic Literature Review Stages
The first step involved identifying research questions to establish objectives and formulate the problems.The research questions for this study were presented in Section 1.
The second step was defining a search strategy.To simplify the literature search process, a structural modification was implemented by mapping the research questions into four components, namely topic or area, comparison, outcome, and context.Table 1 shows the mapping of research questions.After obtaining keywords and determining the search query, literature search was conducted in various research publication databases, namely Scopus, ScienceDirect, ACM Digital Library, ProQuest, IEEE Xplore, and Taylor & Francis.The search query (SQ) might differ between databases since each has its own styles and rules.The general SQ for this study was formulated as follows.

SQ: ((factor* OR component OR aspect) AND "knowledge sharing" AND ("software development" OR "software engineering" OR "agile software development")) OR ((implementation OR model OR application) AND "knowledge sharing" AND ("software development" OR "software engineering" OR "agile software development"))
The third step was determining inclusion and exclusion criteria.Table 2 outlines the criteria used for inclusion and exclusion in this study.The fourth step was determining specifying criteria for assessing the quality of literature.Table 3 presents the criteria for quality assessment (QA) process for this study.
The literature search was performed using predetermined keywords on publication title, abstract, and author keywords, supplemented by IN1 and IN2.Initially, 185 relevant articles were obtained from the initial search, detailed as follows: Scopus = 106 articles, ScienceDirect = 8 articles, ACM Digital Library = 13 articles, ProQuest = 2 articles, IEEE Xplore = 55 articles, Taylor & Francis = 1 article.These results will then undergo a screening process based on several predetermined criteria.

Screening
Next, a manual investigation was conducted, involving the removal of duplicate articles that resulted in 39 duplications.Subsequently, the literature selection process entailed applying inclusion criteria IN3 and IN4 as well as exclusion criteria EX1 and EX2 by observing the abstracts of the papers.Out of the 146 retrieved articles, only 31 met the established criteria.

Eligibility & Included
From those 22 articles, full-text papers were screened by applying inclusion criteria IN4 and exclusion criteria EX1, EX2, and EX3.The screening generated 22 valid articles which eventually underwent a quality assessment for eligibility by applying QA1-QA7.Finally, all 22 articles relevant to the research objectives were chosen, as illustrated in Figure 2.
Next, the selected papers were carefully examined to synthesize the information, allowing for the presentation of the findings related to knowledge sharing influencing factors and practical implementations.

QA2
Did the paper include an appropriate literature review, background information, and research context related to knowledge sharing?QA3 Did the paper discuss within the scope of software development?QA4 Did the paper describe the research approach, methodology, or proposed framework used?QA5 Did the paper address factors influencing the process or behavior of knowledge sharing?QA6 Did the paper discuss the implementations/practices of the knowledge sharing?QA7 Did the paper present conclusions relevant to the research objectives?

Reporting the Review Findings
During the reporting phase, the identified and eligible papers underwent a thorough reading process.Subsequently, the papers were aligned with knowledge sharing factors and implementation in software development industry.The findings were then presented in the results section.

D. Result and Discussion 1. Overview of the Literature
A summary of the results from the selected literature is presented in Table 4. Broadly, nearly all the selected literature discussed factors influencing and the implementation of knowledge sharing.Some literature only addresses factors without specifically explain how the knowledge sharing processes are carried out.More detailed explanations regarding the identified factors and practical implementations related to the knowledge sharing can be found in the subsequent subsection.

Knowledge Sharing Influencing Factors
There are several factors that influence knowledge sharing based on our findings.The findings will be categorized based on the theory of factors impacting knowledge sharing, namely individual, organizational, and technology [20].A more in-depth explanation can be found in the subsequent paragraph.

Individual Factors
Individual aspects were the most prominent factors influencing knowledge sharing processes or behavior, especially in the software development industry.
The results of the SLR indicated that there were 23 factors identified from 22 research articles that could impact knowledge sharing.Table 5 provides a list of factors that have been found to influence the knowledge sharing process, along with references and the frequency of their occurrence within different sources.It can be observed that motivation (8 occurrences), trust (7 occurrences), education/capabilities (6 occurrences), communication (4 occurrences), and intention (4 occurrences) were the top 5 factors most frequently mentioned in relevant studies.
The motivation of individuals in the software development field was identified as the most significant factor influencing knowledge sharing behavior, as indicated by various studies [6], [7], [18], [23], [24], [25], [26], [27].Study [9] demonstrated that the motivation to engage in knowledge sharing significantly and positively influenced the knowledge sharing process itself.The findings from research [21] suggested that motivation was the most crucial driving force for an individual to have the intention to share knowledge.
Building on this, trust emerged as the second most crucial factor [4], [6], [7], [27], [28], [29], [30].For knowledge sharing to thrive, individuals in the software development industry must place trust in their colleagues.When team members trust each other and share a mutual understanding, knowledge sharing within a team is improved.
Intention was also identified as a crucial factor influencing knowledge sharing behavior, as found in relevant research articles [18], [30], [31], [32].Individuals with an intention towards something are more likely to actualize their actions, particularly in knowledge sharing.This was further supported by [18], demonstrating a strong correlation between knowledge sharing intention and knowledgesharing behavior.
Additionally, there were several supporting individual factors that could influence knowledge sharing.These factors included attitude, language, relationship, social network, subjective norm, awareness, personal characteristics, perceived behavioral control, reciprocity, shared vision, and time, age, job security, norms of cooperation, psychological factors, reputation, resistance to change, and sense of community.

Organizational Factors
Considerations were also given to organizational aspects affecting individuals in the software development industry or team in knowledge sharing context.The study revealed 15 factors from 22 research articles that could influence knowledge sharing from an organizational perspective.Table 6 presents a list of these factors impacting the knowledge sharing process, complete with references and their occurrence frequency across different sources.The study identified the top 6 factors mentioned in relevant literature, with reward and sharing practice each appearing 4 times, and complexity of organization, management support, organizational culture, and policy each appearing 3 times.
Rewards were considered the most influential extrinsic motivational factor in knowledge sharing behavior, especially in software development industry [6], [7], [27], [33].Bonuses and financial incentives can amplify users' contributions to knowledge and stimulate the sharing of information.Beside that, sharing practices implemented by the organization itself were also impactful [9], [13], [18], [24].In other words, the type of knowledge sharing practices adopted by the organization will influence individuals to engage because they are designed to disseminate knowledge within the organization, encouraging knowledge sharing among employees and facilitating collaboration [18].
The other top factors-organizational complexity, management support, organizational culture, and policy-shared equal occurrences and exhibited an interesting correlation.In the software development industry, organizational complexity lays the foundation for these factors' interplay.Management support acts as a pivotal point, influencing knowledge sharing practices.This support is closely linked to organizational culture, shaping employees' views on knowledge sharing.Simultaneously, policies provide a structured framework.Together, these factors create an integrated system, fostering a conducive environment for effective knowledge sharing in the software development industry.
Moreover, various organizational factors supporting knowledge sharing were identified.These factors encompassed the complexity of knowledge and training, each appearing twice; and competitiveness of unit, feedback mechanisms, getting everybody on the same level, maturity of knowledge, resistance to change, resource sharing, and roles, each having a single occurrence.

Technological Factors
In the context of knowledge sharing, technological factors affecting individuals in the software development industry were also considered.The study identified two factors from a technological perspective that could impact knowledge sharing.Table 7 provides a list of these factors affecting the knowledge sharing process, along with references and their frequency of occurrence in different sources.The research pinpointed the technology capability factor, which was mentioned 4 times, and infrastructure, mentioned once.
In the technological landscape of the software development industry, the factors of technology capability and infrastructure are interconnected elements influencing knowledge sharing behavior.Technology capability reflects the proficiency of tools, shaping how individuals share knowledge, while infrastructure provides the foundational framework for this process.In essence, these factors collectively contribute to the technological ecosystem that influences knowledge sharing behavior within the software development industry.The support of technology encourages the exchange of knowledge between individuals and facilitates interpersonal interactions across all organizational levels, ensuring accessibility to knowledge at any time [9].

Knowledge Sharing Practical Implementations
In practice, knowledge sharing can be carried out through various ways.Each organization/team implements knowledge sharing process according to their specific needs and capabilities.Further explanation regarding the most commonly found implementations of knowledge sharing from the findings can be found in the following paragraph.

Knowledge Repositories
Knowledge repository is the most frequently mentioned implementation of knowledge sharing in the findings [4], [6], [7], [9], [25], [26], [37], [38].A knowledge repository is defined as a system for sharing knowledge and can be referred to as a document management system or content management system [8].Its primary objective is to share unstructured information across the organization.The information can be stored in many ways such as: video [28], source code [26], and wiki pages [25], [26].

Meetings
Meetings, particularly formal meetings, are one of the knowledge sharing implementation frequently identified in the findings [4], [6], [27], [30], [32], [36].Formal meetings can serve as a platform for team members or even teams across the organization to share knowledge.In this practice, one of the most influential factors is the support from top management.

Informal Conversation
Informal conversation is one of the common interactions among team members.Additionally, knowledge sharing can occur during these interactions.Informal and relaxed activities can serve as a means to exchange tacit knowledge between senior team members and less experienced team members.Informal conversation is identified as an implementation of knowledge sharing in several findings [4], [6], [7], [24], [29], [38].

Online Chat
Online chat is one of the communication activities that has become highly accessible with the aid of current technology.Online chat enables two people/teams separated by distance and time zone to interact and exchange information.This process is effectively utilized for knowledge sharing practices.Online chat/discussion are commonly found in global, agile, and large-sized team/organizations [4], [6], [7], [26], [27].
There are still many other implementation of knowledge sharing found in the literature.Some of these implementations are similar to those explained earlier.However, there are also unique forms of implementation that are not widely used in every other organizations, such as a role rotation of the team member [35].A more comprehensive list of findings along with literature information discussing them can be found in the following Table 8.

E. Conclusion
This study investigates the factors affecting and the practical implementations of knowledge sharing in the software development industry using a systematic literature review, encompassing 22 relevant research articles.The findings reveal 40 distinct factors impacting knowledge sharing behavior from individual, organizational, and technological standpoints.In the individual aspect, 23 factors were identified, with the top 5, namely motivation, trust, education/capabilities, communication, and intention, being consistently mentioned.The organizational aspect highlights 15 factors, with the top 6, including reward, sharing practice, complexity of organization, management support, organizational culture, and policy, deemed most significant.Meanwhile, the technological aspect spotlights 2 critical factors-technology capabilities and infrastructure.The study also identifies 16 commonly utilized knowledge sharing practices in the software development industry.The 8 practices most frequently mentioned in relevant studies include knowledge repositories, meetings, informal conversations, chat, emails, presentations, reports/documentation, and coaching/training/tutoring.This study discusses knowledge sharing within the software development process and activities in general.However, software development is a complex process with various methodologies.Therefore, it is recommended for future research to investigate knowledge sharing with a focus on specific software development methods.Research with focused methologies hopefully will yield results more suitable to the needs of teams/organizations to create more effective knowledge sharing.

Figure 2 .
Figure 2. Systematic Literature Review Extraction Process

Table 1 .
Research Questions Mapping

Table 2 .
Inclusion and Exclusion Criteria

Table 3 .
Quality Assessment Criteria QA1 Did the paper clearly define the research goals/objectives?

Table 6 .
Summary of Organizational Factors

Table 7 .
Summary of Technology Factors