Prediction of Personality Proﬁles in the Pakistan Software Industry–A Study

: Psychology says not everyone is able to do all type of tasks assigned to them. This point is valid for people working in the software industries as well. Therefore, when assigning the most suitable tasks to people according to their personality type, a software development company’s succession rate can be proliferated to a remarkable level. In this manner, the main theme of this empirical research is to ﬁnd relationships that establish links between personality type and their job designation preferences in the software industry. For this purpose, this study is comprised of 44 Pakistan developers, who are working in di ﬀ erent software houses and are directly involved in developing software projects. In addition, an MBTI (Myers-Briggs Type Indicator) test indicator is used for the link establishment. With respect to the reported results, tester, team lead, and project manager are found to be ENFJs, which is the least common type in software developers. However, for web developers and software engineers, ISFJ is found to be the most preferable type, with an edge over ENFJ.


Introduction
The history of Software Engineering (SE) shows that people are found to be associated with the Software Development Life Cycle (SDLC) repetitively through its various forms such as software developers, engineers, and other stakeholders [1]. Each person associated with SDLC plays a significant role in defining software project outcomes and its success as well. The assignment of appropriate tasks to team members, having different sets of skills, in order to perform various functions of SDLC, has always been an issue. Different sets of ideas have been tried to maximize the performance and make suitable choices within the software engineering process. These ideas include working environment, level of motivation, type of personality, or coalesced methods where the combination of environment and motivation level tend to influence the performance level. Generally, motivation is considered a powerful factor in the achievement of goals and is of great importance in the field of IT. However, motivation alone is not considered sufficient as an influencer to complete the task. Similarly, the study [2] stated that environmental factors cannot improve any task performance alone. Therefore, there are a variety of factors that are involved in software engineers' performance.
Software engineering can be considered a social process in which methods and tools are influenced by user experience, knowledge and ability [3]. Consequently, a significant difference between SE and other engineering articles is the importance of the human factor. In addition, with the rise in maturity of the field, the human prominence in software development is widely accepted. Therefore, there is empirical research that examines the connection between attitudes, performances, personalities and Psych 2019, 1, 320-330; doi:10.3390/psych1010022 www.mdpi.com/journal/psych preferences of software developers. For the identification of differences among various individuals associated with the field of software engineering, personality tests are used. Two major classifications of personality evaluation in psychology are the objective test and projective test where objective evaluation is being carried out on the basis of a questionnaire while projective evaluation is done on the basis ambiguous stimuli [4]. Different recognized and accepted approaches from social fields have been utilized in Software Engineering (SE). Sometimes, the attention in knowledge-intensive firms is related to their continuous growth and overall significance for society. The erstwhile research methods focusing on human aspects have not been given a prominent status when it comes to software technology and its processes. However, relatively few studies focus on the professional software developers and the organizational, behavioral and social aspects, despite this increased interest. Current empirical research on behaviors of different human roles in software engineering focuses on finding influences between "soft" elements, which can be described as job attitude, performance, personality and role preferences or project results or effects as well. Conversely, the "soft" ones are often complex and ambiguous concepts in the social and psychological sciences. Perhaps because of these reasons, some studies look for clear associations due to complexity and the nature of these multi-dimensional connections, while others do not find any or just small/few effects.
There exist various studies for the investigation of relationships between personalities of software engineers and performance through the identification of associations between specific sets of tasks of software development and personality type. For example, the authors [5,6] addressed some specific programming related issues. However, contradictory evidence [7,8] about personality assessments also exist, which indicate that it is not a fair measure to judge performances regarding programming.
This study specifically is an effort to investigate the individual preferences role in software projects, while abandoning the environment and motivation elements, which have been found to be widely used in already existing studies. Additionally, this research makes an effort to exclusively examine the role of individual preferences for software projects, with explicit focus on understanding how different personality types can affect the software team's role preferences, not on the achievement of some level of performance. In addition, it is investigated that one of the modern psychological tools-MBTI-has been used considerably in the Software Engineering field. Realistic data from different software houses of Pakistan have been gathered and the relationship between personality types and work preferences of software professionals have been investigated. Precisely, the aim is to use the MBTI method that predicts the personality types and groups the individual separately, and thus provides more comprehensive results.
This research article is organized in the following manner: Section 2 provides a discussion of various forms of tests that aid in judging human psychology. Then, Section 3 discusses the related work presented in literature. Section 4 includes research questions. Methodology of research is explained in Section 5. The results of the test carried out in this research are discussed in Section 6. Finally, Section 7 provides conclusions of this empirical research.

Personality Tests
Personality tests are very useful in judging human psychology i.e., behavior and personality [9][10][11]. They also aid firms or organizations with picking out the most suitable persons for a specific job. In this way, there are a variety of questionnaires that have been developed for judging the personality of employees while hiring them. Moreover, these tests also help individuals to choose different professional fields. For the purpose of counseling people for their career and predicting their behavior, a wide range of psychological instruments are used. Hence, for determining personality influences software development tasks, a variety of frameworks exist. A list of personality assessment tests that have been used in software industries for the prediction of personality traits follows.

PAT
A Programming Aptitude Test (PAT) introduced by IBM (Armonk, NY, USA) was found to be the best to assess a programmer's aptitude for hired for entry level programming [12]. In this test, the talent of a candidate is predicted through the measurement of his/her competence and skills needed to become a successful programmer. Furthermore, this test consists of three fractions; the first two include analogies and the third has arithmetic related questions to determine the linear thinking and learning abilities.

The Keirsey Temperament Sorter (KTS)
The Keirsey Temperament Sorter test for personality assessment was introduced in the book "Please Understand Me" [13]. It is basically a questionnaire-based test that is designed to help people better understand themselves and others. It is closely related to the Myers Briggs Type Indicator test that is basically used by employers to choose their personnel according to their personality. It categorizes people in four temperaments that are Idealists, Guardians, Artisans and Rational. Hence, this test helps people to get an understanding about their personality traits and have knowledge about which type of personality temperament they have.

Five Factor Model (FFM)
A five factor model of personality is developed to characterize the variety of individual's personalities by using a small/minute set of questionnaire trait dimensions [14]. It is known as the "Big Five" due to hierarchical organization of domains which are grouped according to personality traits. The domains are Extraversion, Agreeableness, Conscientiousness, Neuroticism and Openness to Experience. The people who lie in the first domain of extraversion are more confident and sociable rather than reserved and calm/quiet. The individuals who have the second trait of Agreeableness are civilized/polite and cooperative/supportive rather than rude and aggressive. Individuals that have conscious traits are organized and task focused rather than disorganized and distractible. Neurotic individuals have negative emotions such as depressions, aggressiveness and frustration. Individuals that have openness to experience have a broad range of interest in art, beauty and are sensitive, rather than indifferent to art and prefer novelty to routine. All these dimensions of FFM capture the most important and basic differences in people's personality traits.

Self Compassion
Self compassion is a state of mind or emotional response of individuals who have a lack of confidence and competency in some adverse circumstances and instances of perceived failure and personal suffering. Self-compassion is composed of three main components and each component has positive and negative aspects that embody compassionate versus uncompassionate behavior [15]. The first component is self-kindness versus self-judgment, the second is a sense of common humanity versus isolation and the third is mindfulness versus over-identification. A self-compassionate frame of mind is built by a combination of these components.

TEIQ
This test is basically developed to assess an individual's sentiments intelligently and tell people how well they understand and manage their emotions [16]. This test gives people an edge to assess how well people interpret and deal with emotions of others and how they utilize this information to manage relations. It is also useful in today's intricate business environment where people should understand their emotional strength and limitations, how they must react to stress, how they can build new healthy relationships and how they become self-motivated and flexible. This approach achieves plans to be put in place to increase your best score of the yield.

MBTI
MBTI is based on a classical theory of cognition to personate individuals' trait measures. It is also widely used to explain peoples' personality characteristics and determine whether they belong to any specific profession or not. [17] The Myers-Briggs Type Indicator (MBTI) [18] is an introspective test that is proposed to judge how people observe the world around them and make decisions. It is a personality test instrument that is mostly used for non-psychiatric people. It focuses on four dimensions which are as follows: the first dimension focuses on extraversion (E) or introversion (I), the second dimension is about considering information sensing (S) or intuition (N), the third dimension is how people deal with making decisions, in thinking (T) or feeling (F) and the fourth dimension is how people deal with the world, by judging (J) or perceiving (P).
According to [19], MBTI is incompetent in terms of predicting personality traits, as a mixed type and only identifies that a person is either introverted or extraverted. However, in reality, people can be both extroverted and introverted. Although the MBTI has been widely criticized, the best we can say is that the MBTI can be a prominent measure to help employees better understand themselves, increasing self-awareness, profound communication in team groups and conflict-reduction. Adversely, this tool is irrelevant to job performance and task accomplishment, and human resource managers should probably avoid using it as a selection test for job candidates.
However, MBTI is widely accepted amongst researchers in software engineering domains [6,[20][21][22]. Therefore, the MBTI personality test was used in this study to explore the personality features of software developers.

Literature Review
A rule-based approach has been used in [23] by introducing a rough set technique [24] to determine patterns in data selected. Based on an MBTI [25] personality indicator, the findings show that the Extrovert E [26] personality type is important in determining team efficiency related to roles. Although this study focuses on small and medium software team composition, which is comprised of 4-6 team members, it also reveals that an extrovert personality type is dominant for both software team roles for positive output. In addition, T thinking personality types are predominant for the developer since it is obviously essential for a programmer to have the capability of making logical and objective decisions.
The study [27] explains that software developers who work in industry are extroverts while those in academia are mostly introverts. They also used MBTI personality indicators with 16 possible rational combinations [28]. Likewise, a survey was conducted among 100 software developers in [29] is to map out some opposing personality types [30] for the main tasks of a software life cycle. It provided a link of relationships between software developers' MBTI types [31]. Additionally, they concluded that 100% ESFPs, 93% ESTPs, 86% ISFJs, 84% ESTJs, 80% INTPs, 80% ISTJs, 67% INTJs, indicated System Analyst in their preferences, while 100% of ISTPs, 83% ISFJs, 76% ESTJs, 71% ISFJs, 67% ESTPs and 67% ESFPs prefer computer programmers. They also determined that allocating tasks to an individual was best suited according to his personality traits and it also increases the probabilities of a successful result for the software development. They also explained that the MBTI is not a devise mechanism to foresee succession in a particular career. It helps only to indicate software professional preferences for particular job roles and assignments. In [32,33], an initial step was done to use a complex network approach [11] to find the effective personality types within programmer roles. MBTI personality indicator is used to determine some personality types that are frequently demanded for teamwork (i.e., ESTP and ENTJ) and yet can be effective for communication. On the other hand, working in a team requires communication (i.e., INTP, ENTP) between other team members. They also found that personality has a certain relationship with gender, hence it cannot be generalized as an identical type of personality for male and female programmers.
In [34], one of the most significant methodologies, situational context cards (SSC) [35], is used to identify psychological characters of software development practitioners. It was confirmed that software developers in teams that are using a plan driven methodology [36] are considered to be more judging characteristics (J) and for the professionals in teams using an agile approach [37] are ascertained to be in the perceiving trait (P) based on their findings.
In another study [38], the psychometric data which is comprised of 279 students of Swedish University studying in masters SE program were collected. A variety of statistical methods were applied, such as descriptive statistics as Generalized Linear Models [39], one way analysis of variance [40] and Cluster analysis [41] on dataset. The statistical analysis was used for the investigation of the relationship between work preferences and psychometrics [42]. They discovered two personality types; the first preferred working in teams, named intense, and second favored working with short contributions to the project, called moderate. They also examined each personality trait distinctly and found numerous statistically significant links. In the field of software engineering, the authors of [43] used the Big Five method along with Failure Mode and Effects Analysis (FMEA) [44]. In their model, the human factor is considered a risk factor in the process of software engineering and also examines methods by evaluating psychological characteristics for the diagnosis of desired productivity levels. For exploring the significance of the personality of individuals who are part of software teams, a two-step empirical approach was employed. In the first step, the assessment of software developers, which were 216 in number, personality traits were determined through the context specific survey. Afterwards, a novel illustration method for personality was proposed for the visualization of team structures. As far as they were concerned, that study evaluated and estimated the personal performance of software developers and managers in assigned tasks.
To judge the team performance, the authors [45] developed a rule based model. In this respect, the model comprises 'gender' as a variable including three other independent variables; personality type, role of team leader, and team performance. Furthermore, to measure the personality of 46 team members, the MBTI (Myers-Briggs Type Indicator) was used.
The research work of [46] demonstrated that the participation during the process of prototyping of the educational robot can positively affect attitudes towards educational robots. In addition to that, the participation can also reduce the anxiety level of educational robots. In this respect, for examining the impact of people participation during the process of prototyping, an online survey with was conducted with "Unipark" software (http://www.unipark.com) in which 112 people participated. Moreover, they used ANOVA and MANCOVA for statistical analysis.

Research Questions
This work is focused to use MBTI measure to investigate the relationship between different personality types for finding effective nodes of personality for software developers. The following questions were answered: Q1. Which personality type exists in different phases of SDLC? Q2. Predictions of personality traits of software developers in the Pakistan industry according to their role preferences.

Research Methodology
The objective of this research is to find out the software developer's personality type and their preferred roles by identifying their distinctive psychological traits. This study establishes a dynamic relation between personality type and tasks assigned to professionals. In order to understand how individual personality affects software professionals' role selections, an empirical method is used for this research to identify the types and preferences among software professional roles. Therefore, 44 software practitioners from the different software houses of Pakistan were surveyed. For the sake of clarification, only those software professionals were selected which were directly involved in software projects. The professional's age range was between 25 and 39 years. The survey was conducted based on convenience sampling; it is a type of non-probability sampling where participations are easily accessible, available at a particular time and with an agreement to participate [47]. Thus, the participations of the survey contributed just on a voluntary basis. Moreover, any kind of compensation was not provided to the participants. Their average length of practice as software practitioners was four years.
In this study, there were nine Web developers, 12 software engineers (full stack), seven senior software engineers (team lead), six testers, three project managers, five graphic designers and two system analysts; all professionals were directly engaged in software development. A questionnaire with 70 questions related to MBTI were sent to them. To identify their MBTI types, the Personality Test instrument (form G) was applied. Although this type of personality test is self-assessed, so it was explicitly processed the data. The sample contained 84.09% males (37) and 15.91% females (7). Specifically, contributors were directed to emphasize only their general preferences, and their development tasks were not considered when research was conducted.

Analysis and Discussion
In the light of 16 MBTI distribution (Table 1) of the 44 software developers, this research found that ISFJ (25%) is the most common type. However, INTP (11%) is in second place. In addition, ISFP (9%), ISTJ (9%), ENFP (9%) and ENFJ (9%) are found as the third most common combination of personality type. ESTJ (7%), ENTJ (7%), ENTP (5%) and ESTP (5%) are the least common combinations. Among the respondents, INTJ, INFP and ESFP have no representation. This is because of the small size of the data sample. In combination, Intuitive (N) is more dominant over Sensing (S) and Judging (J) is more than twice that of Perceiving (P). There is a distribution of I-E, S-N, J-P, F-T in Figure 1 that clearly describes that I (introvert) is predominant over extrovert (E) people and the feeling (F) is higher than thinking (T) in software professionals. Figure 2 expresses that introverted (I) people are mostly engaged with the roles of Web Developer (WD) and Software Engineers (SE), whereas Team Leads (TL) are found to be more intuitive people than sensing, which can be seen in Figure 3.
Psych 2019, 1, FOR PEER REVIEW 6 Test instrument (form G) was applied. Although this type of personality test is self-assessed, so it was explicitly processed the data. The sample contained 84.09% males (37) and 15.91% females (7). Specifically, contributors were directed to emphasize only their general preferences, and their development tasks were not considered when research was conducted.

Analysis and Discussion
In the light of 16 MBTI distribution (Table 1) of the 44 software developers, this research found that ISFJ (25%) is the most common type. However, INTP (11%) is in second place. In addition, ISFP (9%), ISTJ (9%), ENFP (9%) and ENFJ (9%) are found as the third most common combination of personality type. ESTJ (7%), ENTJ (7%), ENTP (5%) and ESTP (5%) are the least common combinations. Among the respondents, INTJ, INFP and ESFP have no representation. This is because of the small size of the data sample. In combination, Intuitive (N) is more dominant over Sensing (S) and Judging (J) is more than twice that of Perceiving (P). There is a distribution of I-E, S-N, J-P, F-T in Figure 1 that clearly describes that I (introvert) is predominant over extrovert (E) people and the feeling (F) is higher than thinking (T) in software professionals. Figure 2 expresses that introverted (I) people are mostly engaged with the roles of Web Developer (WD) and Software Engineers (SE), whereas Team Leads (TL) are found to be more intuitive people than sensing, which can be seen in Figure 3.    Moreover, Figure 4 tells us that feeling (F) is found to be predominant among Web Developers (WD), Software Engineers (SE) and Software Testers (ST). On the other hand, from the same figure, it is clear that more thinking (T) capability is found in Team Leads (TL). In addition, the Judging (J) trait is present more than Perceiving (P) among WD, SE, GD, TL and SA as depicted in Figure 5. Figure 6 depicts the overall distribution of MTBI factors with job designation.   Moreover, Figure 4 tells us that feeling (F) is found to be predominant among Web Developers (WD), Software Engineers (SE) and Software Testers (ST). On the other hand, from the same figure, it is clear that more thinking (T) capability is found in Team Leads (TL). In addition, the Judging (J) trait is present more than Perceiving (P) among WD, SE, GD, TL and SA as depicted in Figure 5. Figure 6 depicts the overall distribution of MTBI factors with job designation. Moreover, Figure 4 tells us that feeling (F) is found to be predominant among Web Developers (WD), Software Engineers (SE) and Software Testers (ST). On the other hand, from the same figure, it is clear that more thinking (T) capability is found in Team Leads (TL). In addition, the Judging (J) trait is present more than Perceiving (P) among WD, SE, GD, TL and SA as depicted in Figure 5. Figure 6 depicts the overall distribution of MTBI factors with job designation.

Conclusions
The field of software engineering appears to be permanently appealed by people with different personality profiles and faces the challenges that accompany this diversity of personalities. This work is aimed to address the fundamental problems regarding influences of human factors in the field of software engineering. This research endeavors to provide the relationship evidence between MBTI types of software engineers and preference of role. It attempts to explore the preferences for related software development roles rather than predicting performance based on personalities. Through the tests, it can be assumed that individuals are motivated to accomplish the tasks that they give preference to or enjoy doing. The results indicate no relevancy among personality types INTJ, ISTP, INFP and ESFP.
These distinctive patterns are worthy evidence for the relationships between preference of roles in software engineering and personality types. They have explored compelling facts about introverts [I] being dominant over extroverts [E]. In addition to that, introvert, sensing, feeling and judging (ISFJ) remain the dominant personality types of web developers and software engineers. Extrovert, intuitive, feeling, and sensing (ENFJ) are software testers, team leads and project managers. It can be found that assignment of particular psychological characteristics to an individual within a software life cycle and, on the basis of it, a best suited role, can increase the likelihood of a successful outcome of that project.
Along with the supporters at a wide level, MBTI also has some critics who have not accepted it, while pointing out its shortcomings of statistical structure and some other limitations as well. MBTI is facing continuous criticism, which is related to the distortion of data through the use of its impassive assessment. Consequently, it provokes some serious shortcomings of psychometrics,

Conclusions
The field of software engineering appears to be permanently appealed by people with different personality profiles and faces the challenges that accompany this diversity of personalities. This work is aimed to address the fundamental problems regarding influences of human factors in the field of software engineering. This research endeavors to provide the relationship evidence between MBTI types of software engineers and preference of role. It attempts to explore the preferences for related software development roles rather than predicting performance based on personalities. Through the tests, it can be assumed that individuals are motivated to accomplish the tasks that they give preference to or enjoy doing. The results indicate no relevancy among personality types INTJ, ISTP, INFP and ESFP.
These distinctive patterns are worthy evidence for the relationships between preference of roles in software engineering and personality types. They have explored compelling facts about introverts [I] being dominant over extroverts [E]. In addition to that, introvert, sensing, feeling and judging (ISFJ) remain the dominant personality types of web developers and software engineers. Extrovert, intuitive, feeling, and sensing (ENFJ) are software testers, team leads and project managers. It can be found that assignment of particular psychological characteristics to an individual within a software life cycle and, on the basis of it, a best suited role, can increase the likelihood of a successful outcome of that project.
Along with the supporters at a wide level, MBTI also has some critics who have not accepted it, while pointing out its shortcomings of statistical structure and some other limitations as well. MBTI is facing continuous criticism, which is related to the distortion of data through the use of its impassive assessment. Consequently, it provokes some serious shortcomings of psychometrics, which are: (1) the sole concepts related to Jungian are not in their original form and even have contradictions, (2) preference scores cannot be assigned through bi-modal distribution, (3) the existing studies related to MBTI cannot be validated either as theory or measure. In addition, MBTI does not provide any way to predict success in a particular designation; it indicates that only software professional preferences for specific roles such as software engineers and developers in our study are mostly introverts. Therefore, we may infer that the introvert type is dominant in people who code the algorithms in SE cycles. In the end, it is crucial to highlight that the study of relations or associations between software role and personality type interprets how software development is affected by the type of individual indicator and how much important it is to find the right people for the right roles in software engineering.
In the future, it may be possible to identify the personality types of employees who have higher success rates in completing their tasks by using the current studies. However, to measure the success of an employee, we have to determine the metrics that explain the performance of employees in the software engineering domain. In this way, the organization could employ people with personality types that are better suited to accomplish the organizational objectives.