Framework to Increase Knowledge Sharing Behavior among Software Engineers

Aim of this study is to increase knowledge sharing among Software Engineers. Knowledge sharing is a key activity in Software Engineering field. However, increasing knowledge sharing in Software Engineering organization is not an easy task because of the lack of experience of top management in dealing with human/social/soft aspects. Previous researches in Software Engineering field have heavily focused on technical aspects rather than non-technical (human/social/soft) aspects. Therefore, a good amount of research work needs to be done to understand the social, job/work and human factors that can affect knowledge sharing. To fill this gap in research, this study proposes a framework based on non-technical aspects of Software Engineers to increase their knowledge sharing behavior. The components which are used to propose the framework includes motivation, personality traits of software engineers, job characteristics and perception towards knowledge sharing technology. Based on extensive literature review, the study suggests that motivation, personality and job characteristics have direct relationships with knowledge sharing behavior whereas perception towards technology plays a moderating role.


INTRODUCTION
Software engineers work on variety of projects. To make a project successful, knowledge among project members should be shared because software development is a knowledge intensive activity (Bjorson and Dingsoyr, 2008). If project members hoard their knowledge then it becomes difficult to successfully complete the project on time. This delay in timely completion of a project can increase the cost of the project and in some cases even result in the failure of the project. On-time delivery of a project is one of the criteria to measure a project's and organization's success. Knowledge sharing (transfer of knowledge from one person or group to another (El-Korany and El-Bahnasy, 2009) is, therefore, vital for all software engineers in order to perform well in their jobs.
Increasing knowledge sharing among software engineers is an uphill task as most project leaders of software projects do not often have a formal training/qualification in the area of management. These professionals are normally promoted to higher posts based on their technical skills rather than management skills (Tanner, 2003;Rehman et al., 2011). This makes the process of influencing software engineers to share knowledge a rather complex task. As Software Engineering is comparatively different profession than other professions, the methods and techniques used to increase knowledge sharing from other professions may not apply to Software Engineers. This means that to increase knowledge sharing among software engineers, a study focusing purely on software engineers needs to be conducted.
In delivering a project successfully, technical and non-technical aspects (human, environmental, job, personality, etc) are equally important. In fact, technical skills (or hard skills) should be blended or tailored with soft skills to make a successful project. This process of blending hard and soft skills is known as "tailoring" (Howard, 2001). In other words, hard and soft skills should complement each other (Capretz and Ahmed, 2010). As mentioned earlier by Bjorson and Dingsoyr (2008) that previous studies have predominantly focused on the technical side of Software Engineering. Recently, however, there is a growing interest about non-technical aspects (soft issues) of Software Engineering.
As a human related activity, knowledge sharing can, therefore, be categorized as soft aspect (nontechnical) in Software Engineering. This study enhances the work that has been done on the soft side (non-technical) of Software Engineering by proposing a framework that focuses on factors to increase the Knowledge Sharing Behavior (KSB) of software engineers through soft aspects. As individuals are the building blocks of teams and organizations, this study focuses on individuals' KSB. The components which are integrated in the proposed framework are motivation, personality traits, job characteristics and perception towards Knowledge Sharing Technology (KST) usage and ease of use.

LITERATURE REVIEW
Motivation and KSB in Software Engineering: Some organizational policies have to be pursued to increase knowledge sharing among individuals (Foss et al., 2009) because individual's motivation (strength and direction of behaviour (Shafizadeh, 2007) to share knowledge cannot be taken for granted (Cabrera and Cabrera, 2002). As mentioned by Liu et al. (2010), knowledge sharing is not an outcome that will be achieved automatically. Instead, it is a capability that needs to be developed. Employees normally hesitate to share knowledge due to various reasons such as job insecurity, opportunistic behaviour of others, less reciprocal behaviour, etc. This means that in order to increase knowledge sharing, organizations may have to persuade employees to share knowledge. Due to this, knowledge sharing remains a difficult task (Lam et al., 2010).
Organizations normally use different motivations in order to foster the KSB of employees. These motivations (motivators) can be extrinsic and intrinsic in nature (Galia, 2007). Extrinsic motivation is achieved through the benefits attached with the job like relationship with supervisors and financial benefits. On the other hand, intrinsic motivation is achieved directly from the task itself. In other words, a job or task 'is valued for its own sake and appears to be self sustaining'' (Deci, 1976). Although a vast literature exists on knowledge sharing, the relationship between knowledge sharing and individual motivation is largely unexplored and misunderstood (Milne, 2007).
Studies on individual motivation have largely concentrated on understanding factors that lead to motivation. Several studies have been conducted to understand the motivators and de-motivators for software engineers. One of the most recent and comprehensive studies is by Beecham et al. (2008). The findings revealed the following: • Motivators and de-motivators were categorized into generic and specific. • Generic motivators include "rewards and incentives, development needs addressed, variety of study, career path, empowerment/responsibility, good management, sense of belonging, study/life balance, studying in successful company, employee participation, feedback, recognition, equity, trust/respect, technically challenging study, job security, identify with the task, autonomy, appropriate studying conditions, making a contribution and sufficient resources " (Beecham et al., 2008). • Generic de-motivators include "risk, stress, inequity, interesting study going to other parties, unfair reward system, lack of promotion opportunities, poor communication, uncompetitive pay, unrealistic goals, bad relationship with users and colleagues, poor studying environment, poor management, producing poor quality software, poor cultural fit and lack of influence" (Beecham et al., 2008). • Some motivators and de-motivators which are specific to Software Engineering include "problem solving, team studying, change, challenge (Sanatnama and Brahimi, 2010), benefits, science, experiment, development practices and software process/life-cycle. Specific de-motivator was software process/life-cycle" (Beecham et al., 2008).
Based on the studies of Beecham et al. (2008) and Sharp et al. (2009), a study by Da Silva and Franca (2012) was conducted focusing on Brazilian software engineers. The study, however, have focused on the motivators aspect only. They studied the following motivators: In another study by Tanner (2003), motivators and de-motivators of engineers including software engineers were investigated. The findings revealed the following as motivators to the respondents: "Problem solving, creativity, job itself, sense of accomplishment, recognition from top technical management, opinions of employees are considered, team member with appropriate technical and personality skills, technical training and sincerity from management." De-motivators mentioned were "compensation, engineering managers and administration and overhead".
The above studies, which were conducted in the field of Software Engineering, have identified the As these motivators or de-motivators are specific to software engineers meaning they are directly related to the task itself, thus they can be categorised under intrinsic form of motivation. These two kinds of motivators (intrinsic and extrinsic) play an important role to increase or decrease KSB.
According to Tanner (2003), to have a long term effects, intrinsic motivation is more important than extrinsic motivation. This does not mean that extrinsic motivation is not important but a blend of both extrinsic and intrinsic motivations will be more useful rather than pursuing only one kind of strategy for software engineers. Types of motivation also vary in terms of knowledge sent or received (Foss et al., 2009) in the sense that intrinsic motivation has a positive impact on knowledge sent whereas extrinsic motivation has a negative impact on amount of knowledge sent (Foss et al., 2009). From the above review, we can infer that both extrinsic and intrinsic motivations have impact on KSB. The only difference is that intrinsic motivation is more important to make software engineers share their knowledge as compared to extrinsic motivation. Extrinsic motivation can increase KSB at a particular time but when those extrinsic rewards are removed, software engineers will decrease their knowledge sharing or will probably stop sharing at all. Figure 1 shows the relationship between motivation and KSB.

Personality traits and KSB in Software Engineering:
Human factors have important roles in developing software (Wang, 2009). Thus, success of software project depends not only on the right people with technical skills but also with the right personalities (Sodiya et al., 2007). Understanding the personality of software developers is as equally important as knowing their qualifications, technical skills and experience (Howard, 2001). Personality attributes affect online knowledge sharing (Hsieh and Kao, 2010) as well as offline KSB. This phenomenon of online knowledge sharing is commonly observable these days in the forms of wikis and blogs.
Various measures have been used to analyze individual's personality but the two most extensively used are the Big Five personality model (Goldberg, 1990) and Myers-Briggs Type Indicator (MBTI) by Briggs and Myers (1987). Both have their own advantages and disadvantages but Big Five personality instrument has been used more widely to assess the personality of individuals (Sodiya et al., 2007). It covers most aspects of personality (Robbins, 2003) and its validity has been accepted by many scholars (Barrick and Mount, 1991;Barrick et al., 1998;John and Srivastava, 1999). Big Five personality measures Openness, Agreeableness, Conscientiousness, Neuroticism and Extraversion as personality traits. Before Big Five, such categorization of personality into various traits was not done and this is the main benefit which Big Five offers (Hsu et al., 2007). Big Five is therefore used in this study for analyzing the relationship between personality and KSB of software engineers. Figure 2 shows the relationship between Big Five personality traits and KSB.
Agreeableness refers to those people who are sympathetic, good-nature and cooperative (McElroy et al., 2007). These people are altruistic as well (Goldberg, 1990). Other traits such as trust, friendly nature are also important features of agreeable people (Martínez et al., 2010). Because of their sympathetic, altruism, cooperative, trust worthy and friendly nature, they are willing to share their knowledge in order to make the project successful (Srinivasan, 2009). As found by Sodiya et al. (2007), all software engineers are high in agreeableness. Therefore, it can be assumed that software engineers are sympathetic, good-nature, cooperative and high in altruistic thus they will have higher KSB.
People with Neuroticism have poor emotional stability and can easily surrender under anxiety, depression or insecurity (Martínez et al., 2010). Therefore, because of their insecure nature, they may not share their knowledge (Hsu et al., 2007). It is also reported that people with more stable personality share more knowledge (Hsieh and Kao, 2010). Sodiya et al. (2007) concluded that software engineers are low in neuroticism. This means that software engineers are emotionally stable people and they do not feel the fear of insecurity. Hence it can be concluded that as software engineers have low neuroticism level therefore they will have higher KSB.
Conscientious people are responsible, dependable, organized and goal oriented. Various studies such as Konovskyand and Organ (1996) and Organ and Ryan (1995) have shown strong relationship between conscientiousness and Organization Citizenship Behaviour (OCB). OCB has a strong link with KSB (Lin, 2008) and as OCB is intrinsic in nature and leads to higher intrinsic motivation thus it can be assumed that people who are high in conscientiousness will share more knowledge. As far as software engineers are concerned, software management engineers, testers and evaluators are moderate in this personality characteristic whereas requirement engineers, designers and programmers are high in conscientiousness (Sodiya et al., 2007). Thus it can be concluded that most of the software engineers are high in conscientiousness which has a positive relationship with OCB and OCB (intrinsic motivator) has a positive impact on KSB. Hence people with conscientiousness trait will have a positive KSB because they will be intrinsically motivated to do so.
The people with 'Openness to experience' as their trait are more inclined towards new experiences in life (Barrick and Mount, 1991). They are also imaginative, curious and unconventional (Martínez et al., 2010). Due to this nature, they try to gain new knowledge and based on social exchange theory, they might share their knowledge to gain new knowledge in return (Blau, 1964). According to the findings by Sodiya et al. (2007), most software engineers are low in openness to experience. This means that most software engineers are not willing to share or learn from their experiences. Thus, a lower openness to experience will cause lower level of knowledge sharing among software engineers.
Extraverts are comfortable while engaging in social activities and group activities. They are active, cheerful, confident, optimistic, outgoing and passionate. They are also competent conversationalists. Results by Sodiya et al. (2007) concluded that most of the software engineer categories (software management engineers, designers, programmers and evaluators) are low in extraversion, which makes them introvert people. These introvert people are less sociable and involved in less group activities thus introvert software engineers will share less knowledge.

Job characteristics and KSB in Software
Engineering: Very little work has been done on the relationship between job characteristics and KSB specifically for software engineers. Although in other fields, job characteristics especially Job Characteristic Model (JCM) (Hackman and Oldham, 1980) has been widely used. The problem with JCM is that it uses only five dimensions as job characteristics (Grant, 2007) whereas more dimensions of job characteristics need to be included in future studies (Foss et al., 2009). Besides JCM, Turner and Lawrence (1965) also produced some job characteristics which were later reviewed by Hackman and Lawler (1971) and set the path for the development of Job Diagnostic Survey (JDS). This study will focus on job characteristics mentioned in Turner and Lawrence (1965) and Hackman and Oldham (1980). According to JCM, skill variety, task identity and task significance have impact on meaningfulness of work which results in high internal work motivation. As by Couger and Zawacki (1980), high internal work motivation leads to high quality work, high satisfaction with work and less absenteeism and turnover which are all outcomes. From this it can be concluded that skill variety, task identity and task significance can lead to more positive outcomes. Since KSB is also a performance related outcome (Rabbiosi et al., 2009), therefore, a positive relationship between skill variety, task identity, task significance and KSB can be predicted. Software engineers are high in skill variety due to continuous changing technology, platform and more learning opportunities from unique problem solution for every problem. Similarly all software engineers whether they are requirement engineer, design engineers, coders or testers, complete their parts of the job, so they have higher task identities. At the same time, software development itself is a significant job and has an impact on many people thus making their tasks significant. Therefore, it can be concluded that software engineers who have more skill variety, task identity and task significance will have higher KSB. Other job characteristics like autonomy and job feedback influence responsibility for outcomes and knowledge of results, respectively. Both variables, responsibility for outcomes and knowledge of results, impact the outcomes mentioned in JCM. Once again, autonomy and feedback influences the outcomes, so a positive relationship can be predicted between these two factors and KSB. Some other studies have also shown relationships between JCM components and KSB. Latham and Pinder (2005) found that higher autonomy can lead to more time for learning and development. In addition, autonomy increases the intrinsic motivation of an individual to share knowledge (Foss et al., 2009). Feedback also has been found to have a positive impact on external motivation to share knowledge (Foss et al., 2009).
Apart from the dimensions mentioned by Hackman and Oldham (1980) and Hackman and Lawler (1971) also mentioned two more job characteristics which are dealing with others and friendship opportunities. Both are related with the personality traits of an individual. As we know from the discussion above, software engineers are high in introversion which means they will be hesitant when dealing with others or while going for friendship. This hesitation will lead to lower KSB among software engineers. Figure 3 shows that how job characteristics are related with KSB.
Role of technology in influencing KSB among software engineers: Information can be transformed to knowledge with the help of Information Technology (IT) (Chen et al., 2009) thus making technology a critical success factor for the implementation of Knowledge Management (KM) (group of clearly defined methods or procedures (Chen et al., 2008)) and a key enabler for knowledge sharing (Davenport, 1997). Organizations can benefit through sharing knowledge among their members. This knowledge can be shared by implementing KM for which Information and Communication Technologies (ICTs) are used (Leung, 2010) thus emphasizing the role of technology for KSB. The role of technology for knowledge sharing depends on the acceptance of KST by organizational members.
KST acceptance includes Perceived Usefulness (PU) and Perceived Ease of Use (PEOU). Perceived usefulness and perceived ease of use are different but connected to each other (Kim, 2008). Both these dimensions of KST moderate (as moderating variable) the relationship between the motivation and KSB. People who are motivated and perceive that KST is easy to use, it is useful for them and for their organization, it serve the purpose for which it is in place then they will use such KST more often which will result in higher KSB.
KST also plays a moderating role between personality traits and KSB. Those individuals, who have sharing as their personal characteristic, may feel technology as a barrier. For example, if people are open to share their experience, (which means they are sociable and have emotionally stable personalities) they will have a positive relationship with KSB. However, if KST is too complex, not easy to use, not mature to do task(s) for what it was implemented for, not compatible with daily job routine and software engineers perceive it as not useful then even though software engineers have a knowledge sharing personality attributes, these issues of technology will negatively impact their KSB. Thus it can be said that technology plays a moderating role between personality traits and KSB.
KST plays a moderating role between job characteristics and KSB as well. Job characteristics include autonomy, feedback, job complexity, task significance, dealing with others, friendship opportunities and skill variety. KST has a moderating role to play between all job characteristics and KSB. For example, people with more autonomy have more time to learn and share their knowledge but in cases of complex KST, or less perception of low usefulness by software engineers, KSB will decrease due to less usage of KST. Similarly, as was mentioned by Hurley and Green (2005), feedback, autonomy and job variety play important roles in creating a KM culture. Thus the impact of these job characteristics on KSB cannot be ignored as KSB is one of the outcomes of KM culture. If technology does not play its due role then it will be very difficult to create a KM culture. Therefore, technology plays a moderating role between job characteristics and KSB.

DISCUSSION
Knowledge sharing plays a key role in the success of any organization. The same goes for Software Engineering organizations. As Software Engineering is a distinct and knowledge intensive profession, therefore, the importance of knowledge sharing can never be ignored for this profession. Increasing knowledge sharing is not a simple task. To increase knowledge sharing, certain strategies needs to be followed. Those strategies include providing the right kind of motivation; hiring the right personalities; providing the right job characteristics and perceiving KST positively.
Both intrinsic and extrinsic motivation plays a vital role in increasing KSB. However, intrinsic motivation has an upper hand than extrinsic motivation. Some of the studies showed even negative relationship between knowledge sharing and extrinsic motivation. Bock and Kim (2001) proved that attitude towards knowledge sharing and extrinsic motivation has a negative relationship. Extrinsically motivated people may move away from KSB in the absence of extrinsic motivation whereas people intrinsically motivated will continue their KSB even in the absence of extrinsic motivators. Despite its importance, intrinsic motivation can also affect organization negatively as intrinsically motivated people may follow their own goals and objectives to satisfy themselves as compared to following goals and objectives of the organization (Galia, 2007). Therefore, Software Engineering managers should exercise care while focusing on blending extrinsic and intrinsic motivations. Solely relying on extrinsic or intrinsic motivation will not work and can result in the decrease of efficiency and effectiveness of software engineers.
Personality plays an important role while predicting the work-related outcome. As knowledge sharing is also a performance related outcome which is part of work-related outcome, thus different researchers have analyzed the relationship between KSB and personality traits. In this regard, the Big Five model of personality traits have been used many times due to its grasp on overall personality traits. This study also links the Big Five Personality traits to knowledge sharing in the context of Software Engineering. Previous studies showed that personality traits do impact KSB. For example, Gupta (2008) proved that agreeableness and conscientiousness have a positive relationship with KSB. It was also mentioned by Gupta (2008) that there is no significant relationship between KSB, openness to experience, neuroticism and extroversion. However, the authors of the current study do not agree with these findings. As openness to experiences, neuroticism and extroversion do show that a particular person who is sociable in nature and emotionally stable likes to share and learn more. Thus chances of a positive relationship between openness to experience, extroversion and KSB are higher than negative relationship. Ford (2008) concluded that job-related factors also impact KSB as was revealed by 19 out of a total of 28 respondents. These job-related factors include job characteristics. Job characteristics as defined by Turner and Lawrence (1965) and Hackman and Oldham (1980) consists of task significance, task identity, feedback, autonomy, friendship opportunities, dealing with others and skill variety. Most of these job characteristics have a positive relationship with KSB as far as software engineers are concerned because these job characteristics increase the motivation to share knowledge. However, dealing with others and friendship opportunities have negative relationship with KSB for software engineer. Technology is a critical success factor for KM implementation. Thus, to make KM implementation successful, knowledge sharing is vital. Proper KST which is perceived to be easy to use and useful helps software engineers share their knowledge if they are motivated, have the right personality and job characteristics.
Based on literature review and discussion, Fig. 4 shows the proposed framework.

CONCLUSION
This study proposed a framework to increase the KSB of software engineers. Software Engineering industry is currently booming and is heavily dependent on knowledge. This knowledge needs to be shared among software engineers as it not only increases the performances of software engineers but also helps to complete the projects on-time. Knowledge sharing can be considered as the "jugular vein" of the Software Engineering industry. That is why, recently, researchers have increased their focus on KSB in this profession.
Future studies will validate this framework by adding some more job or w design characteristics. The empirical validation is already in process as a part of a PhD study. It will be interesting to see how different Software Engineering categories behave against motivational factors and to look at what motivational factors are important for which category of software engineers. It will also be interesting to see how personality and work characteristics vary for different Software Engineering categories.