Big Five Patterns for Software Engineering Roles ... - Semantic Scholar

5 downloads 30681 Views 629KB Size Report
ity types using Big Five Personality Tests for Software Engineering Roles in ... System (FIS) type model with rules that helps us recommend best suited roles ... Effective use of psychometric instruments can add value to an organization. When.
Big Five Patterns for Software Engineering Roles Using an ANFIS Learning Approach with RAMSET Luis G. Martínez, Antonio Rodríguez-Díaz, Guillermo Licea, and Juan R. Castro Universidad Autónoma de Baja California Calzada Tecnológico 14418, Tijuana, México 22300 {luisgmo,ardiaz,glicea,jrcastro}@uabc.edu.mx

Abstract. This paper proposes an ANFIS (Adaptive Network Based Fuzzy Inference System) Learning Approach where we have found patterns of personality types using Big Five Personality Tests for Software Engineering Roles in Software Development Project Teams as part of RAMSET (Role Assignment Methodology for Software Engineering Teams) methodology. An ANFIS model is applied to a set of role traits resulting from Big Five personality tests in our case studies obtaining a Takagi-Sugeno-Kang (TSK) Fuzzy Inference System (FIS) type model with rules that helps us recommend best suited roles for performing in software engineering teams. Keywords: Fuzzy Logic, Uncertainty, Software Engineering, Psychometrics.

1 Introduction Nowadays more and more mind-mapping and decision making programs find their way to our life. Use of effective decision making software for everyday planning and task management is on the rise in modern organizations. Web pages and Decision Groups commonly offer services for decision making and personnel selection with different methodologies applying psychometrics. Diverse personality tests like Jung, Myers-Briggs, Keirsey, Big Five, among other projective tests, can be used to know the sociopsychological characteristics and personality of individuals besides abilities for job placement and hiring, especially in assigning individuals to form a working team [1][2][3]. Effective use of psychometric instruments can add value to an organization. When used in selection and structured interview process, they enable companies to select more accurately those people who will perform best in a role. This paper proposes an ANFIS (Adaptive Network Based Fuzzy Inference System) Learning Approach to find personality type patterns of software engineering roles using Big Five Personality Tests while implementing RAMSET (Role Assignment Methodology for Software Engineering Teams), a personality based methodology used in software project development case studies. Personality tests are based on interpretation; therefore to tackle uncertainty a Takagi-Sugeno-Kang (TSK) Fuzzy Inference System (FIS) type model with rules will help us recommend best suited roles for performing in software engineering teams. G. Sidorov et al. (Eds.): MICAI 2010, Part II, LNAI 6438, pp. 428–439, 2010. © Springer-Verlag Berlin Heidelberg 2010

Big Five Patterns for Software Engineering Roles

429

The rest of the paper is organized as follows: section 2 is a brief background of personality and personnel selection relationships. Section 3 defines RAMSET’s steps and describes big five factors in general. Section 4 displays results of the big five personality test, the big five patterns and implementation of ANFIS model for RAMSET, concluding in section 5 with observations obtained from experience.

2 Background Human Psychology studies are old, before the 80’s personality aspects were considered of low value in personnel selection. Personnel selection methodologically chooses individuals for the right job. The first tests [4] used for a programmer’s performance prediction and personnel selection in software development projects where PAT test (Programmer Aptitude Test), WPT test (Wonderlic Personnel Test) and PMA test (Primary Mental Abilities). In personality analysis, different and popular tests exist, like Jung’s, Keirsey and Myers-Briggs Type Indicator (MBTI) tests. Rutherford [5] manages Personality Inventories in his Software Engineering classes to integrate heterogeneous teams, obtaining good results in teams’ performance and individuals’ growth. Karn and Cowling [6] also implemented personality tests in Sheffield University England, documenting personality effects in Software Engineering Teams performance, mentioning that is a vast area and many subjects to consider relating software engineer’s personality and their teams. Feldt et al. [7] corroborate that empirical studies should collect psychometrics focusing in correlating personality ant attitudes to software engineering processes and tools. Personality type was measured with MBTI (Myers-Briggs Type Indicator) using Keirsey Temperament Sorter by Gorla and Lam [8], their survey study shows a relationship between Software Engineering Roles and MBTI dimensions, primarily analyzing team leaders, analysts and programmers. These experiences resemble the findings by Capretz [9] in surveying people in the US working in software engineering. Shen [10] and colleagues have applied Myers-Briggs Type Indicator (MBTI) and Kiersey Temperament Sorter to form engineering design teams based on Wilde’s [11] own method of selection with this tests. They recommend a Sensing-Intuitive (SN) type as the most important preferred type linked to creativity for selection of engineers in a leader role for design process. Also Sodiya et al. [12] from Nigeria have developed a tool integrating personality traits proposing a Cogno-Personality Assessment Model for Software Engineering (CPAMSE) relating the Big Five Traits with roles and activities of engineers in software engineering. In contemporary psychology, the "Big Five" factors of personality are five broad domains or dimensions of personality which have been scientifically discovered to define human personality. The initial model was reported by Tupes and Cristal [13], Digman [14] advanced his model and Goldberg [15] extended it to the highest level of organization, and it is known as the “Five Factor Model” or FFM [16], is a purely descriptive model of personality. The big five personality tests are used to screen candidates for team building, selection, job analysis, training programs, coaching, counseling and leadership development. Personnel selection and assessment applies the measurement of individual differences to the hiring of people into jobs where they are likely to succeed. Industrial and

430

L.G. Martínez et al.

organizational psychologists who practice in this area use information about the job and the candidates to help a company determine which candidate is most qualified for the job. Job analysis is the process of determining knowledge, skills, abilities and personal characteristics required for a given job. Based on results of job analysis, industrial and organizational psychologists choose selection methods which are most likely to be correlated with performance for the specific job. Wei-Shen and Chung-Chian [17] proposed a realistic personnel selection tool based on fuzzy data mining method feasible to assist businesses in finding eligible applicants through reliable information effectively and efficiently. Therefore agreeing that prediction of future organizational behavior of employees should be the focal point in the processes of personnel selection, finding the relationship between the attributes applicants owned and organizational behaviors. Their tool can assist business manager to find eligible talent more efficiently. Their method is based on three types of behavior for a well-functioning organization: people must be induced to enter and remain with the organization; they must reliably carry out specific role or job requirements; and there also needs to be innovative and spontaneous activity that goes beyond role prescription [18]. In Software Engineering Development Teams each member can take a different role, for our case studies we adopted those defined by Tomayko [19]: architect, responsible for project creation, coordination and supervision; analyst, responsible for finding and following up on resources, requirement analysis and specifications; developer-programmer, responsible for implementation and code design; tester, responsible for tests and evaluation of the system; document specialist, responsible for compiling every document for evidence and defining documentation standards; and image and presentation role as a representative in charge of selling and promoting the product. As we can see Software Engineers have their typical fields of expertise like coordinating, designing, programming, testing, evaluating, RAMSET methodology focus’ is to determine the best suited role for team performance relating personality test results with software engineering roles. We can choose from a set of different Personality Tests all revolving on the dimension types or personality traits that display the behavior of the individual member of the team. Combining these tests we can acquire the most valuable information for decision making in assignment of roles. This paper specifically analyzes results of internet’s free Big Five Test applied in our different case studies with RAMSET methodology.

3 Methodology At the University of Baja California, Tijuana Mexico teaching of Software Engineering in our Computer Engineering Program is being conducted with development of real software projects applying RAMSET: a Role Assignment Methodology for Software Engineering Teams based on personality, what is unique about our methodology is a combination of Sociometric techniques, Psychometrics and Role Theory in Software Engineering Development Projects, this methodology consists of the next steps: a) b) c)

Survey for abilities and skills. Implementation of Personality Tests. Execute Personal Interviews.

Big Five Patterns for Software Engineering Roles

d) e) f)

431

Implementation of the Sociometric Technique. Assignment of Team Roles. Follow up of Team Role fulfillment.

RAMSET methodology begins with a student’s survey enumerating related courses of software engineering he has taken, to know which programming languages and data base managers he is expert in. The next step is a series of personality tests; they could be Jung, MBTI, Big Five, Keirsey or similar tests. Subsequently we make an informal interview to know different aspects of his personality, what he likes to do, how he perceives himself at the end of his career studies, how he develops in the real world individually and with others, how he would like to participate in a team. After that a sociogram technique is applied to identify affinity for integration of teams. Based on test results and interview information a team role is recommended to the instructor so individual members of each team develop a specific team role with all its functions. Big Five personality tests claim to measure your intensities in relation to the “Big Five” factors. The structure of the tests requires selecting options from multiple choice questionnaires. These big five personality tests equate your personality to your collective degrees of behavior in five factors. The Big Five factors are Openness, Conscientiousness, Extroversion, Agreeableness, and Neuroticism (OCEAN, or CANOE if rearranged). The Neuroticism factor is sometimes referred to as Emotional Stability. And Openness factor sometimes is referred as Intellect. Openness (O) is a disposition to be imaginative, inventive, curious, unconventional and autonomous, has an appreciation for art, emotion, adventure, unusual ideas, curiosity and variety of experience. Conscientiousness (C) comprises of two related facets achievement and dependability, has a tendency to show self-discipline, be efficient, organized, act dutifully and aim for achievement, plans rather than behave spontaneously. Extroversion (E) represents tendency to be sociable, outgoing and assertive, experiences positive affect such as energy, passion and excitement. Agreeableness (A) is a tendency to be trusting, friendly, compassionate, cooperative, compliant, caring and gentle. Neuroticism (N) represents tendency to exhibit poor emotional adjustment and experience negative or unpleasant emotions easily, such as anxiety, insecurity, depression and hostility. Because of uncertainty of personality traits a fuzzy based approach is considered to provide an integrated quantity measure for abilities of software development personnel which incorporates all aspects of personality traits involved for role assignment. Fuzzy based approaches have been considered like Lather’s [20] fuzzy model to evaluate suitability of Software Developers, also Ghasem-Aghaee and Oren’s [21][22] use of fuzzy logic to represent personality for human behavior simulation. Consequently encouraging engineering educators to make greater use of type theory when selecting and forming engineering design teams and delegating team roles, in benefit of achieving productivity and efficiency in team performance. The neuro-adaptive learning method works similarly to that of neural networks. This method has been applied in pattern recognition in areas like 3D object recognition[23], fingerprint matching[24] and human facial expression recognition[25].

432

L.G. Martínez et al.

Neuro-adaptive learning techniques provide a method for the fuzzy modeling procedure to “learn” information about a data set. Fuzzy Logic Toolbox software computes the membership function parameters that best allow the associated fuzzy inference system to track the given input/output data. The Fuzzy Logic Toolbox function that accomplishes this membership function parameter adjustment is called ANFIS. The acronym ANFIS derives its name from Adaptive Neuro-Fuzzy Inference System as defined by Jyh-Shing Roger Jang [26]. Using a given input/output data set, the toolbox function ANFIS constructs a Fuzzy Inference System (FIS) whose membership function parameters are tuned (adjusted) using either a backpropagation algorithm alone or in combination with a least squares type of method. This adjustment allows your fuzzy systems to learn from the data they are modeling. The modeling approach used by ANFIS is similar to many system identification techniques. First, you hypothesize a parameterized model structure (relating inputs to membership functions to rules to outputs to membership functions, and so on). Next, you collect input/output data in a form that will be usable by ANFIS for training. You can then use ANFIS to train the FIS model to emulate the training data presented to it by modifying the membership function parameters according to a chosen error criterion.

Fig. 1. ANFIS Big Five Test Model

Fig. 2. Big Five Test ANFIS Model Architecture

Big Five Patterns for Software Engineering Roles

433

Fig. 3. Rules obtained in ANFIS Big Five Test Model

In general, this type of modeling works well if the training data presented to ANFIS for training (estimating) membership function parameters is fully representative of the features of the data that the trained FIS is intended to model. Figure 1 shows our ANFIS model proposed where each Big Five trait is an input linguistic variable. Openness (O) takes a label value of one (1), conscientiousness (C) a label value of two (2), extroversion (E) a value of three (3), agreeableness (A) a value of four (4) and neuroticism (N) a value of (5). These input variables enter the ANFIS model and obtain an output variable that is the resulting Role recommended. Label values for Role are (1) analyst, (2) architect, (3) developer-programmer, (4) documenter, (5) tester and (6) presenter. The ANFIS under consideration has five variable inputs denoted by x = { O, C, E, A, N }, with two Gaussian membership functions (B), a set of 32 rules and one output variable Role (R). For a first-order Sugeno Fuzzy Model, a k-th rule can be expressed as: Rule k-th: IF (x1 is

B1k ) AND (x2 is B2k ) AND (x3 is B3k ) AND (x4 is B4k ) AND (x5 is B5k )

THEN R is f k ( x ) , where

f k = p1k + p2k + p3k + p 4k + p5k + p0k and membership functions are denoted by:



μ B ( xi ) = exp ⎢ ⎣ k i

where



1 2

⎛ ⎜ ⎝

x i − m ik

σ ik

⎞ ⎟ ⎠

⎤ ⎥⎦

pik are linear parameters, and Bik are Gaussian membership functions for k=

1,2,3, …, 32 and i = 1, …,5.

434

L.G. Martínez et al.

The corresponding equivalent ANFIS architecture is as shown in Fig. 2. The entire system architecture consists of five layers, these are {input, inputmf, rule, outputmf, output}. Using this architecture, with OCEAN traits as input linguistic variables and Roles as output linguistic variables, a Takagi-Sugeno-Kang (TSK) FIS type model was developed using the ANFIS Editor GUI, creating, training and testing it, to find adequate rules to help us find best suited Role with OCEAN personality traits. Figure 3 is an abstract visualization of the rules generated by the model.

4 Results Work of our case studies from 2007-2 to 2009-2, consisted of 72 software engineers working with real projects, assigning 80 roles in software development teams. Of these 13 have been assigned as Analysts, 13 Architects, 17 Developers/Programmers, 14 Documenters, 14 Tester and valuator, 9 Image and presentation. Big Five personality test results obtained are presented in Table 1 showing the means and standard deviation of each trait for every role. Each table row is a personality vector unique for every Role, no two rows have exactly the same values for every one of their attributes, and this gives us a significant difference between each Role to recommend based on the Big Five Personality Test. Table 1. Results of OCEAN test for Software Engineering Roles ROLE

O

C

E

A

N

MEAN 1

Analyst

50.615

63.143

51.571

45.846

64.286

2

Architect

54.154

67.231

57.308

52.154

64.154

3

Developer

51.667

52.778

44.111

54.471

59.222

4

Documenter

55.000

61.286

51.929

52.000

58.857

5

Tester

51.714

66.133

56.000

47.857

63.333

6

Presenter

52.222

60.889

46.889

55.778

65.778

STANDARD DEVIATION 1

Analyst

11.644

9.502

19.394

12.688

11.472

2

Architect

8.735

10.910

16.317

10.846

7.978

3

Developer

16.439

10.429

12.718

11.737

11.944

4

Documenter

11.602

8.361

13.035

8.302

8.179

5

Tester

15.066

10.596

20.340

12.538

16.189

6

Presenter

15.279

15.136

12.534

14.507

9.871

TOTAL AVERAGE Average

52.625

61.125

50.513

51.250

62.525

Big Five Patterns for Software Engineering Roles

435

Fig. 4. Big Five Patterns (B5P)

To see the big picture these results can be displayed relating them with a center point using a radar chart type, obtaining Big Five Patterns (B5P) for Software Engineering Roles, these patterns are shown if figure 4, while figure 5 is a comparative of them. There are significative differences between each role. For example trait (E) is high for architect and tester, low for a developer. Trait (C) is high for most roles except for developer. Trait (A) is high for a presenter and developer, but low for an analyst. This can give us a glimpse of specific traits for a particular role. Thus one trait does not define the personality of a role, but a personality vector with all traits involved can give us differences between each role. These data was used for our ANFIS model obtaining figure 6 where it shows Input Trait and Output Role Relationships of this model. Whereas numeric values for linguistic variable Roles were (1) Analyst, (2) Architect, (3) Developer-Programmer, (4) Documenter, (5) Tester and (6) Presenter. Openness trait (O) covers roles 2 thru 4, Conscientiousness trait (C) engulfs roles 4 thru 6, Extroversion trait (E) from 3 thru 6, Agreeableness trait (A) reaches covers 2,3 and 4, and Neuroticism trait (N) reaches all roles.

436

L.G. Martínez et al.

Fig. 5. Big Five Patterns Comparative

Fig. 6. Input Trait and Output Role Relationships

Analizing data, range of trait means are from 50 to 60, we will consider low degree around 30-40 and high degree around 70-80 based on standard deviation. With these results we can assertain that a low degree of (E) is definitively recomended to place this person as a Developer-Programmer, this indicates a person highly Introverted, for

Big Five Patterns for Software Engineering Roles

437

him is difficult to relate with others, although his high degree in trait (A) is an asset as he is very cooperative, trusting and compliant, attributes for a good programmer, also in B5P pattern figure of developer has a high degree of (O) indicating to be imaginative and creative, qualities for code design. Trait (N) is a most significative trait as envelopes a wide range of roles, those with low degree of (N) or better said with opposite trait a high degree of (ES) Emotional Stability is a quality of a leader presenting security, reassurance and selfconfidence. For a high degree of (E) as noted in B5P figures, an architect, analyst and tester present this quality, indicating that these roles are best suited for outgoing people, that can relate easilly with others, with passion and excitement in reaching goals and objectives. The set of rules obtained with ANFIS learning approach implemented in MatLab’s commercial Fuzzy Logic Toolbox [27], help us simulate our case studies and has given us another approach to start automating Role Assignment with RAMSET in software engineering projects.

5 Conclusions The purpose of using RAMSET is identifying the individual’s qualities to carry out the most suitable role in an effective working team. Some personalities and big five traits have been identified to better perform a type of role this defined by a personality vector. The Big Five personality test is only one of many personality tests applied and proposed in RAMSET, as we can see trait-role relationship is not clearly identifiable for all specific roles, a combination of these different personality tests will give us a better defined identifiable result. Implementation of ANFIS models is a highly powerful tool to improve Data Base Rules arisen from this study; combination of different personality test FIS models will create a computer aided software tool invaluable for decision making in assignment of software engineering roles. We know that personality is an important factor to performance of the team, thus is latent the difficulty to assign the adequate role to each member so the team can perform with success. Automation of RAMSET will help us with this task and follow up of RAMSET with fuzzy logic approaches will define better this tool and confirm RAMSET as a methodology for integrating teams and an instrument to select personnel for Software Engineering Development Teams.

References 1. Rothstein, M., Goffin, G.R.D.: The use of personality measures in personnel selection: What does current research support? Human Resource Management Review 16(2), 155– 180 (2006) 2. Hough, L.M., Oswald, F.L.: Oswald: Personnel Selection: looking toward the futureremembering the past. Annual Reviews Psychology 51, 631–664 (2000) 3. Rodríguez, J.: Formación de grupos de desarrollo de software. Ediciones Yoltéotl, Guadalajara México (2004)

438

L.G. Martínez et al.

4. Mayer, D.B., Stalnaker, A.W.: Selection and evaluation of computer personnel – the research history of SIG/CPR. In: Proceedings of the 1968 23rd ACM National Conference, pp. 657–670 (1968) 5. Rutherfoord, R.H.: Using Personality Inventories to Help Form Teams for Software Engineering Class Projects. In: CITiCSE 2001, Canterbury UK, vol. 33(3), pp. 73–76. ACM, New York (2001) 6. Karn, J., Cowling, T.: A follow up study on the effect of personality on the performance of software engineering teams. In: ISESE 2006, Rio de Janeiro, Brazil, pp. 232–241 (2006) 7. Feldt, R., Torkar, R., Angelis, L., Samuelsson, M.: Towards Individualized Software Engineering: Empirical Studies Should Collect Psychometrics. In: CHASE 2008, Leipzig, Germany, May 13 (2008) 8. Gorla, N., Lam, Y.W.: Who Should Work With Whom? Building Effective Software Project Teams. Communications of the ACM 47(6), 79–82 (2004) 9. Capretz, L.F.: Personality types in software engineering. International Journal of HumanComputer Studies, 207–214 (2002) 10. Shen, S., Prior, S.D., White, A.S., Karamanoglu, M.: Using Personality Type Differences to Form Engineering Design Teams. Engineering Education 2(2), 54–66 (2007) 11. Wilde, D.J.: Creative teams, individual development and personality classification. ME310 Course Notes. Mechanical Engineering, Stanford University (2003) 12. Sodiya, A.S., Longe, H., Onashoga, S.A., Awodele, O.: An Improved Assessment of Personality Traits in Software Engineering. Interdisciplinary Journal of Information, Knowledge, and Management 2, 163–177 (2007) 13. Tupes, E.C., Cristal, R.E.: Recurrent Personality Factors Based on Trait Ratings. Technical Report ASD-TR-61-97, Personnel Laboratory, Air Force Systems Command, Lackland Air Force Base, TX (1961) 14. Digman, J.M.: Personality structure: Emergence of the five-factor model. Annual Review of Psychology 41, 417–440 (1990) 15. Goldberg, L.R.: The structure of phenotypic personality traits. American Psychologist 48, 26–34 (1993) 16. Costa Jr., P.T., McCrae, R.R.: Revised NEO Personality Inventory (NEO-PI-R) and NEO Five-Factor Inventory (NEO-FFI) manual. Psychological Assessment Resources, Odessa (1992) 17. Wei-Shen, T., Chung-Chian, H.: A Realistic Personnel Selection Tool Based on Fuzzy Data Mining Method. In: Proceedings of the 9th Joint Conference on Information Sciences, Kaohsiung, Taiwan (2006) 18. Werner, J.M.: Implications of AOCP and Contextual Performance for Human Resource Management. Human Resource Management Review 10(1), 3–24 (2000) 19. Tomayko, J.E.: Teaching a Project-Intensive Introduction to Software Engineering. SEI Carnegie Mellon University Tech. Rep., Pittsburgh Pennsylvania (1996) 20. Lather, A., Kumar S., Singh Y.: Suitability Assessment of Software Developers: A Fuzzy Approach. ACM SIGSOFT Software Engineering Notes 25(3) (May 30-31, 2000) 21. Oren, T.I., Ghasem-Aghaee, N.: Personality Representation Processable in Fuzzy Logic for Human Behavior Simulation. In: SCSC 2003, Montreal PQ, Canada July 20-24, pp. 11–18 (2003) 22. Oren, T.I., Ghasem-Aghaee, N.: Towards Fuzzy Agents with Dynamic Personality for Human Behavior Simulation. In: SCSC 2003, Montreal PQ, Canada July 20-24, pp. 3–10 (2003)

Big Five Patterns for Software Engineering Roles

439

23. Jyothi, N.: Multi-View Technique for 3D Robotic Object Recognition System using Neuro-Fuzzy Method, http://www.gisdevelopment.net/technology/ip/mi04039pf.htm 24. Hui, H., Song, F.-J., Widjaja, J., Li, J.-H.: ANFIS-based fingerprint matching algorithm. Optical Engineering 43, 1814 (2004) 25. Gomathi, V., Ramar, K., Jeeyakumar, A.S.: Human Facial Expression Recognition Using MANFIS Model. International Journal of Computer Science and Engineering 3(2) (2009) 26. Jang, J.-S.R.: ANFIS: Adaptive Network Based Fuzzy Inference System. IEEE Transactions on Systems, Man, and Cybernetics 23(3) (May/June 1993) 27. Fuzzy Logic Toolbox: User’s Guide of Matlab. The Mathworks, Inc. (1995-2009)