Soft Competencies and Satisfaction Levels for Software Engineers: A Unified framework

The importance of software engineers’ competency has long been established as a key pillar for the development of robust software in order to achieve quality software. Software engineering competency research is not necessarily lacking. Nevertheless, the satisfaction derived from using software competency needs more investigation. The aim of this study is to identify soft competencies from empirical data and create satisfaction levels for software engineers’ soft competencies. The result shows 63 soft competencies with three different satisfaction levels consisting of basic, performance and delighters. The paper contributes to the SEC research by highlighting the satisfaction levels of soft competency for the benefit of the educators (academia), software engineers (possessor) and users of software competency (practitioner).


Introduction
The competencies of software engineers have long been recognized as essential for the development of efficient and robust software [1]. According to IEEE software engineering competency is defined as the knowledge, skills and attitudes of software developers to fulfill a task in a software development project [2]. This includes both soft and hard competencies [3]. Lenberg et al. pointed out that research work on software engineering competency (SEC) is not necessarily lacking. Yet, most of the earlier research on SEC focused on technical or hard competencies as against soft or behavioral competencies [4]. Harris & Rogers, define soft skills or competencies as "work ethics, positive attitude, social grace, facility with language, friendliness, integrity and the willingness to learn" [5, p.19]. Thus, the identification and use of soft competencies help in the development of complex software, because the software development involves a combination of soft and hard competencies [3,6].
Works of authors such as Broadbent et al., Moreno et al., and Colomo-palacios et al. have established that soft competency is essential for development of software [6][7][8]. More importantly, recent literature suggests an increase in the number of software soft competencies studies with emphasis on identification of soft competencies [4]. Holtkamp et al. argued that, soft competencies are crucial for the development of global software engineering [9]. Nonetheless, the satisfaction levels of these competencies have not been adequately explored. Accordingly, this paper reports the identification and satisfaction levels of soft SEC as part of a bigger research on SEC.
The knowledge or identification of competencies is one phase of competency equation. The other phase is the benefit derived in the using such competency. The second phases have not received much attention in SEC research. Thurner et al., argue for minimum or base competency as a basic requirement for students of software engineering [10]. We support the base competency requirement and advocate for further investigations to determine the various levels of satisfaction of competencies. We therefore argue for satisfaction levels of soft competencies for software engineers, and state our research questions as:

RQ1
: What are the different satisfaction levels derived from using a software soft competency? RQ2: Which of these soft competencies are perceived as most valuable for Software engineering?
Knowledge of soft competencies and their satisfaction levels serve as insurance for users (people or organizations who use the competencies possessed by the developers to produce a product or a service), educator (people who train the developers to acquire the competencies), and the engineers' (people who receive training and therefore possesses some competencies). Therefore, we have adopt the Kano model [11] and Competency Framework for Software Engineers (CFSE) [12] as a lens to develop satisfaction rankings that can be employed by (i) the possessor of the competencies, (ii) users of the competencies and (iii) by the trainer of competencies possessors. The rest of the paper is presented as follows: section 2 looks at the background and related works and discuss the research models; section 3 discusses the methodology; section 4 presents the results; and section 5 and 6 looks at the discussions and conclusions respectively.

2
Theoretical foundation and Related Works

Soft competency
According to Harris & Rogers, soft skill is or are skills that mostly do not require formal training [5]. Until recently, these skills were mostly self-taught and selfdeveloped. They are mostly not industry specific. In addition, they mostly require emotional intelligence [13][14] E.g. communication flexibility, leadership, motivation, patience, persuasion, problem-solving abilities, teamwork, time management, work ethics.
Soft competency connotes skills that complement technical skills; therefore, it cannot be overlooked in the development of software engineering. [They complement technical skills and thus cannot be overlooked in software engineering]. They are considered to be essential for global software projects [9, p.136]. (Broadbent et al. established that the biggest skill gaps for software engineers were business strategies and marketing of their services [7]. This was emphasized by Moreno et al. [6]. Other studies have argued that more attention must be given to social and inter-personal competencies [15] and emotional intelligence [16]. In proposing a body of skills (SWEBOS) for software engineering, Sedelmaier and Landes identified and structured soft competencies of software engineers into three categories [3]. These include (i) comprehension of the complexity of software engineering processes, (ii) awareness of problems and understanding of cause-effect relationships, and (iii) team competency including communication skills. Although, this provided useful information that facilitates software development practices, it fails to provide relevant information regarding the satisfaction levels derived for possessing or using a competency. Evidently, there is a gap in existing literature. Perhaps, this is because researchers in the area of behavioral of software engineering have been focusing on few concepts [4] and ignore other relevant issues such as the assurance for using or possessing a particular competency To address this, this study seeks to identify and also create a satisfaction level of the competencies from perspective of users, educators, and engineers. This will complement research on SEC in general and soft competency research specifically. To enable us to achieve our research objectives, we make use of CFSE and Kano model. The next sub-sections discuss CFSE and the Kano model.

Kano model
The Kano model is a quality function-deployment framework that helps developers of product or service to include customer's voice in the development phase. It has been applied mostly in the development of products. This is because it takes into consideration the views of both the customer and developer in the development of a product instead of a passive approach of only developers [17]. [17][18][19][20][21][22][23] used the Kano model for the development of ICT system and concluded that the model prioritizes user involvement. It assists in determining basic, performance and delighters of a product or service.
In our scenario, the customer is the software community (organization using the competencies) and the product or service is the competency. According to Kano et al., customer's decision-making options on product or service acquisition, are based on conscious and subconscious deliberations [11]. There is therefore the need to understand these deliberative conscious and subconscious processes of decisionmaking to help develop products or services. Kano et al., categorized these processes into three-requirement levels (basic, performance and delighters). Basic requirements relate to customer's expectations about a product or service. These requirements are classified as basic since their presence are not dynamic enough to change the options and opinion a customer has about the product. However, their absence may result in complaints from the customer. Performance requirements, on the other hand, are expected pre-requisites that customers know and they are essential influential factors on the customer's decision-making options on products or services. These are critical pre-requisite requirements that create high levels of satisfaction when employed appropriately and otherwise if not used. The last requirement termed delighters are those requirements that do not engender any complaints from the customers when absent however surprises the customer when present. Delighters are sometimes referred to as attractive or "wow" factors [11].

Competency framework for software engineers
Competency Framework for Software Engineers (CFSE) is a framework that facilitates, identifies the training needs, and guides the design of software engineers' competencies. The design is based on the activities and interactions of engineers during the software development process. The constructs of this framework are under the main classification of competency (Hard and Soft). Hard competency category relates to the technical aspects of software engineering. These aspects are based on the definition of the SWEBOK roles in software engineering. They are project management, requirement analysis, software design, programming, validation and verification tests, configuration management, quality, tests, documentation and maintenance. The soft part of the categorization is classified into social and personal. Social aspects include interpersonal relations, cooperation and work in a team, and handling and conflicts resolution. Personals on the other hand includes development in the job, personal development, rights and limits. It can broadly be considered as "a set of knowledge, abilities and key behaviors, with special emphasis on the soft skills" [12].
The objective is to create a classificatory system that identifies and explains satisfaction levels of software engineers' competencies. Therefore, we consider the framework suitable. This is because it considers both soft and hard competency and this is the bigger objective we intend to achieve. Furthermore, the framework considers granularity, which is essential for fitting the work to the community. In line with the objective of this study, we focus on the soft competency aspect of the framework and merge it with Kano model. This resulted in a unified framework for identifying and classifying the satisfaction levels of soft competencies. For detailed analysis of the individual meanings of critical variables of CFSE, readers can refer to the original paper of [12]. The detail of the proposed framework for this paper is explained in the next section.

A Unified framework of Soft competency satisfaction levels for software engineers (UFSCSL)
As mentioned earlier, the framework is derived from the CFSE and Kano model. From the CFSE we made use of the soft competency category since our aim is to identify and classify only the soft competency. From among frameworks such as [24][25][26][27] for identifying software engineering competencies CFSE framework is the one that has more granularity, thus making it easy for in-depth analysis. In addition, the Kano model has been used for research work in software engineering, but not for analyzing competencies. Thus, this provides a means to chart a new path for competency research. The soft part of the CFSE framework is first categorized into socials and personals and each have lower granularity as shown in figure 1. The variables of the Kano model (basic, performance, and delighters) were included (see section 2.4), to provide the satisfaction levels for the competencies. See figure 1 for the "soft satisfaction levels of software engineers" framework. To use the UFSCSL, first, the competencies are identified and classifying using the variables in [12]within the frameworks. Then each competency identified or classified is subjected to the metrics of Kano model to determines its satisfaction levels. Thus, given as basic, performance and delighter competencies for socials (interpersonal relations, cooperation and work in a team, and handling and conflicts resolution) and personals (development in the job, personal development, rights and limits).

Data Collection
An exploratory qualitative study was adopted. Specifically, [28,29] qualitative research guide was employed to extrapolate the required data. We agree with the philosophy that an individual's behavior is influenced by the meanings attached to events [30]. Thus, one hundred and thirty-eight (138) participants were drawn from workers in various positions within the industry: practitioner/software engineers/managers/supervisors/mentor. All participants were from software industries based in Norway. A semi-structured interview was used for data collection. Interviews were face-to-face and focused on expected skills of a software developer. Each interview session lasted for about 1 hours. The interview was conducted with the support of assistants. Table 1 represents the distribution of respondents' characteristics.

Data analysis
A thematic analysis offers an accessible means for organizing and describing a dataset under specific themes. Currently, there is no widely agreed way of going about how to use the method [31]. The soft competency satisfaction framework was therefore adopted to guide the analysis.
Both inductive analysis and deductive analysis were used. The coding of the data was done without any pre-defined framework. This enable the themes to emerge from the data. The framework (UFSCSL) was then applied to further code the theme that emerged from the data. Two categories were used on the bases of the epistemology of this research. That is, we were aware of the competencies that have been identified and exist in literature, but our epistemology was that within those identified there will be different satisfaction levels. Hence, we employed both categories in this paper. We outline the following steps below based on the outcome of our analysis and guided by the steps of [31].

Step 1 Familiarization of the data
The interview was conducted with the help of assistants, with the aim of capturing large groups of respondents. Each interviewer transcribed his or her own interview. The author of this paper acquainted himself by reading through the transcribed scripts. During this stage, notes were taken in cases where there were difficulties in understanding aspects of the data. Further discussions were made with the head of data collection to resolve any ambiguity in the data.

Step 2 Generating initial codes
Initial codes were generated from the data by extracting keywords. This was done without recourse to initial pre-defined coding framework. The total number of competencies that were identified from the transcribed data were six hundred forty-one.

Step 3 Searching for themes
After the initial code, all initial codes were grouped into themes, this facilitated the identification of themes. These themes were generated without resort to pre-defined coding framework. Three hundred sixty soft competencies were identified at this stage.

Step 4 Reviewing themes
The themes were compared with existing themes. That is, a pre-defining coding framework was also used. In this case, the Rivera-Ibarra et al. [12] CFSE framework was used.

Step 5 Defining and naming
Next defined themes and meanings were assigned. These names and meanings were reviewed with literature before the competencies were validated using the variables in the Kano model. This stage resulted in 22 basics, 26 performance and 16 delighter competencies.

Phase 6 Producing the report
The emerged themes that resulted from comparing data themes and themes from the framework were used to produce the results discussed in the next section.

RQ1: What are the different satisfaction levels derived from using a software soft competency?
We present the result in Table 2 using the framework (UFSCSL) developed for this paper. The results show the individual competencies and their satisfaction levels, that is: basic, performance, and delighters. They were grouped according to the broader theme of soft competency: social and personal. We also provided definitions using the classification levels from the Kano model for the competencies.

Basic
From the interview data and the analysis, basic competencies are pre-requisite competencies that are necessary and are expected by the users of the competency. Mostly they are taken for granted. Users see these competencies as natural when delivered properly. However, when delivered poorly, users will complain.

Performance
From the interview data and the analysis performance competencies are what users expect and can articulate. They are mostly in the minds of the users and when they are delivered well, they create more satisfaction. These competencies can be described as "uni-dimensional" competency, in that the satisfaction grows exponentially when executed properly.

Delighters
From the interview data and the analysis, the delighter competencies are unexpected by the user. Mostly unexpected by the user but increases the delight and surprise when available however its absence may have no effect on user.

5.2
RQ2: Which of these soft competencies are perceived as most valuable for Software engineering?
As mentioned earlier, delighters are attractive or wow factors that valuable for the development of a product [11]. Therefore, we present our delighter competencies as the most valuable or essential competencies for software engineering . The table 3 shows the competency based on Rivera-Ibarra et al. CFSE framework [12]. The table shows the competency category and the identified essential soft competency for software engineers that are useful for software development.

Discussions
Following our analysis, we aimed to provide a satisfaction level for the competencies identified from our primary data. A total of 63 competencies emerge from our data. Out of that 29 was for social competencies and 34 was for personals competencies with three satisfaction levels.  Table 4 shows the number of competencies and number of satisfactions of the competency area. Under socials competency area cooperation and work in team had 13 competencies, interpersonal relations and handling and solving conflicts had 8 competencies each. The cooperation and work in team competency reflect the team competency category of Sedelmaier and Landes [3]. Under personals competency area, development in the job environment had 17 competencies, followed by personal development with 13 and right and limits with 4 competencies.  [3,15,16,[32][33][34]. Table 5 highlights the new observations and comparison to prior work. With regard to satisfaction levels, competencies were identified in all the categories except rights and limits delighters. A total of 16 essential competencies using the Kano model was identified. These competencies are consistent with literatures such as [35,36]. Furthermore we have been able to create a satisfaction level, that adds to the works of [10, 37] that made argument for based competencies.
On the essential soft competencies for software engineers, we have been able use model analysis to extrapolate the essential competencies that are in agreements with the work of [35,36,38]. Thus, providing a new way of identifying essential competencies.
The novelty in this work are: (i) observations of new soft competency from empirical data that are highlighted in table 4 and (ii) the Unified framework of soft competency satisfaction levels for software engineers (UFSCSL). The UFSCSL has the ability to identify soft competencies of software engineers and also provide a satisfaction levels of the competency. Thus, serving as insurance model for users, possessors and the educators. In short, the major stakeholders of software engineering competency development are considered in this framework.
The study has both practical and research implications. From the perspective of the users of competencies, they can use the classification to determine which competencies will be valuable for employment. On the part of the possessor, they can use the classification levels to evaluate what they possess. Furthermore, educators can use the classification levels to adjust their training. Additionally, the framework which was proposed (UFSCSL) can be used for constant evaluation on old competencies and also on new ones.

Conclusion
The study has analyzed, identified and created a classification that can be used by the software community. This was done by synthesized existing relevant literature. The empirical work was based on Kano et al. [11] and Rivera-Ibarra et al. [12] CFSE framework. The study resulted in the identification of competencies, classification levels and essential competencies of software engineers. The study charts a new path of identifying essential or valued competencies of software engineers by using Kano model that has on been applied on products and services. Further studies should be done to understand how competencies within the satisfaction level can change.
The scope of the data collection was limited to companies situated in Norway; it may therefore limit the ability to generalize the findings universally. Nevertheless, most of the companies that the interviewees worked for has global representation and dealings outside Norway. With the development of competency satisfaction levels, we call for further studies to understand how specific competencies evolves within the satisfaction level.