Experiences in Software Engineering Courses Using Psychometrics ...

2 downloads 24826 Views 562KB Size Report
Jun 30, 2010 - ... Tijuana Mexico teaching of. Software Engineering in our Computer Engineering Program is .... includes computer repair person, computer programmer, software developer; ESTP takes in ..... SEI Tech. Rep. Carnegie Mellon ...
Experiences in Software Engineering Courses Using Psychometrics with RAMSET Martínez M. Luis G., Licea Guillermo, Rodríguez-Díaz A., Castro Juan R. Universidad Autónoma de Baja California Calzada Tecnológico 14418, Tijuana, Mexico 22300

{ luisgmo, glicea, ardiaz, jrcastro }@uabc.mx cohesion, team roles, conflict solutions and team effectiveness, industrial organizational literature has been focusing on less traditional aspects of group composition, such as the mix of cognitive ability and effectiveness [2][3].

ABSTRACT Lately Programming Psychology has opened up a vast area of study, where human, social and psychological factors of the programmer are studied in different computational areas. His behavior and how to relate with others are important aspects that influence performance of a developing team. In our daily work in education we have an obligation of shaping human resources to build a society with professionals participating in companies and corporations dedicated to industrial, social and economic development. Thus in searching for strategies to shape human resources and improve these group corporations we propose RAMSET a Role Assignment Methodology for Software Engineering Teams where we acknowledge the importance of relating personality with team roles, using sociometric techniques and psychometrics to aid in forming high performing teams for software development projects.

In a working team it is not only important to know the capacity, skills, techniques and experience of each member, it is also fundamental to know their sociopsychological characteristics and personality. To form teams we can use sociometric tools that help us analyze psychosocial aspects of individuals forming the work team, their relationship with the rest of the group and their group adaptation. Moreno’s [4] technique called sociometric test is the most common used in sociology education, utilized for fomenting harmonic social relations. We can learn about their team members’ friendships, group divisions, their leaders, popular persons, and solitary persons; permitting us to know the social forces that interact in a workplace.

Categories and Subject Descriptors

Software Engineering, Research Study, Classroom Management, Personality, Psychometrics.

This paper introduces a technique that relates personality, abilities and team roles in a software developing team, implementing RAMSET a Role Assignment Methodology for Software Engineering Teams, consisting of a set of personality tests, a sociometric technique and the use of role theory in Software Engineering Developing Team Projects. The rest of the paper is organized as follows: section 2 is a brief background of personality and team role relationship. Section 3 describes how we implemented our methodology. Section 4 displays results concluding in section 5 with observations and experiences obtained in our case studies, suggesting recommendations for future work.

1. INTRODUCTION

2. BACKGROUND

D.2.9 [Software Engineering]: Management – productivity, programming teams. D.2.10 [Design]: Methodologies, J.4 [Social and Behavioral Sciences]: Psychology.

General Terms Human Factors.

Keywords

Achieving and maintaining excellence in modern corporations requires an effort of combining talents from different individuals (strengths and weaknesses) to accomplish structure, integration and consolidation of working teams. To compose a working team five basic conditions exist [1]: a job to do together, an organizational and functional structure, a relational social affective system, a shared common reference framework and an integration process. Formation of a team includes their abilities as their personalities, whereas personality has an influence in team’s

Software development is an impressively complex socio-technical activity. It requires people to interact with each other and with both technical methods and computing technologies they use to perform their work. The process is made difficult “not because of the complexity of technical problems, but because of the social interaction when users and system developers learn to create, develop and express their ideas and visions” [5]. Traditionally psychological tests used are the ones defined by C. Jung [6], based on two general dispositions: introversion and extraversion, and in four psychological functions: thinking, sensing, intuition and feeling. Therefore he defines eight psychological types; each type is viewed as a description that is true in the sense that an individual’s type accurately describes the preferred characteristic behavior of the individual. Barrick and Mount [7] present evidence that these factors predict the working performance for all type of jobs, while the other factors are related with some type of jobs based on its requirements.

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ITiCSE’10, June 26–30, 2010, Bilkent, Ankara, Turkey. Copyright 2010 ACM 978-1-60558-820-9/10/06...$10.00.

244

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.

Actual studies have been focusing on integration and building of Software Engineering Teams, boarding different factors that influence their performance like team abilities, team administration, efficiency, development methods, diversity, size, genre, personality [8] and roles [9]. Pieterse and Kourie [10] reflect on the performance and diversity of Software Engineering Teams from the University of Pretoria where they applied personality tests, establishing metrics to build the teams. These metrics were ability, diversity and performance, concluding that not only diversity must be taken into account but also effective leadership, communication and cohesion. Hogan and Thomas [11] emphasize about team work in their Software Engineering Courses where they have helped students to be better professionals teaching them work team abilities. Beranek [12] has been defining Functional Team Roles examining an informal distribution of team roles between students, whereas they measure their abilities and attitudes, working styles and behavior, based on Belbin [13] Role Tests, complementing them with students opinion’s about their preferences and working attitudes.

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. The sociometric technique used is a sociogram, a graphic representation of the sociometric technique, easy to elaborate, apply and validate; with it we can obtain group radiography of relationships of group subjects. This test is a series of formulated questions to members of the group, with the finality of indicating two or three members of the same group he would choose or reject to work with in a sequence of tasks, that is, playing, studying, do chores, go out, talk, etcetera, really telling with whom they would like to associate to develop the tasks.

Shen [14] and colleagues have applied Myers-Briggs Type Indicator (MBTI) and Kiersey Temperament Sorter to form engineering design teams based on Wilde’s [15] 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. [16] 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. 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, themes open to investigation.

In different courses of our Computer Engineering Education Program that involve programming or software development with teams, these are integrated to develop industrial, corporative or educational projects. The usual manner of forming teams is to ask students to form by themselves a team of 4 or 5 persons and work as they usually know how. Other times the teacher randomly chooses members to form teams. We initiated in our Software Engineering Course of 2005 period forming one team and asked them to assume a team role, carrying out only specific functions derived from that role. The experience was that students got familiarized with activities and responsibilities of each role.

3. METHODOLOGY

Our first case study with a methodology based on personality was the class of 2006 applying the sociogram to form teams and implemented personality tests to review their type. In this course 12 students collaborated, they were asked to enumerate in order of affinity three persons with whom they would like to participate working together. At the same time to list three persons with whom they would least likely work with. Figure 1 shows our first case study diagram of a structure net of interpersonal relationships that resulted in group survey applying the sociogram technique. We can observe tendency of division in two clear teams, ALPHA team formed by students {1,2,3,4,5} and BETA formed by {7,8,9,10,12}.

In Software Engineering Courses development of projects by work teams is usually implemented applying a traditional Software Life Cycle. Classic software engineering courses consisting of lecture notes and Waterfall Model application for project development is being substituted by more practical methods emphasizing in helpful tools and agile processes, as divulged by North Carolina State University [17]. 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) d) e) f)

The sociogram shows members with more popularity that other members would more likely work with, as members 5 and 11, they can be good leaders or they want to work with them because they amuse them. It also shows people excluded from the group like member 2, no one wants to work with him. This can happen for two reasons, they do not know each other so they cannot risk working with them, or they know each other and really do not want to work with them.

Survey for abilities and skills. Implementation of Personality Tests. Execute Personal Interviews. Implementation of the Sociometric Technique. Assignment of Team Roles. Follow up of Team Role fulfillment.

245

Introverted types; this explained because programmers must interact with several parties, the analyst, other programmers and operators, they must relate to other persons.

Figure 1. Sociogram obtained in First Case Study. In this case study in particular we decided to divide the group in two teams equally. The relationships thrown by this sociogram clearly visualizes two teams. Although members 6 and 11 are attracted by both teams, member 6 is attracted equally by both teams, but is inclined for team BETA. In dividing two teams member 11 is more attracted by team ALPHA and also he is more inclined for it, figure 1 represents the two teams derived from this technique and analysis.

Figure 2. Teams formed in Second Case Study. Based on this first experience, in a Second Case Study, 16 students participated, and instead of only 2 teams we tried smaller teams. The sociogram presented 3 groups with double affinity, on this occasion considering that an ESTJ type denotes an Administrative Role and is linked with an Analyst job, we emphasized on maintaining one ESTJ member on each team, 5 teams came up A, B, D, E, F of 2 or 3 members, except team C where we left them to work together based on their double affinity between them and expectation of working efficiently because of this. Figure 2 shows second case study’s team distribution.

This technique offered valuable firsthand information about interpersonal relationships of the group, existing affinity to work between them and non affinity to not put them together in a same team, this way the sociogram provided integration of teams that will work with less conflicts and show great affinity. Personality tests applied gave us a glimpse of what type of personality related to each role.

Table 1. Personality–Role–Career Job Relationships

Team roles adopted were selected from team roles defined by Tomayko [18] architect, responsible for project creation, coordination and supervision; analyst, responsible for finding and following up on resources, requirement analysis and specifications; developer, responsible for implementation and design; and programmers, technical specialist in charge of building code.

TYPE*

Trait

JOB

Team

1.Analyst

ENTJ

J

Design/Adm

α

2.Programmer

ISTJ

T

Programmer

ß

3.Programmer

ISTJ

T

Programmer

α

4.Programmer

INTJ

T

Programmer

α

5.Validation

ISTJ

I

Programmer

α

6.Programmer

INTJ

I

Design/Adm

ß

7.Validation

ENTJ

J

Design/Adm

ß

8.Architect

ENTJ

J

Design/Adm

ß

MEMBER

Jung’s MBTI different personality dimensions are associated to different career and jobs corresponding to individual personality types [19]. Trait (E) denotes Extraversion, (I) Introversion, (S) Sensitive, (N) Intuitive, (T) Thought, (F) Sentiment, (J) Judging and (P) Perceiving. Jobs associated with engineering and software are: ISTJ type for jobs like engineer, programmer, chief information officer; INTJ type includes programmer and informational graphics; INTP type software designer, systems analyst, computer programmer, data base manager; ISTP type includes computer repair person, computer programmer, software developer; ESTP takes in entrepreneur, technical trainer, analyst; ENTJ an administrator and program designer.

9.Programmer

ESFJ

S

Counselor

ß

10.Analyst

ESTP

S

Analyst

ß

11.Architect

ENTJ

T

Design/Adm

α

12.Analyst

ENTJ

E

Design/Adm

ß

* E=Extraversion, I=Introversion, S=Sensitive, N=Intuitive, T=Thought, F=Sentiment, J=Judging, P=Perceiving.

Gorla and Lam [8] made a personality type analysis to describe the most effective personality attributes for software development team roles. For example a team leader with (N) Intuitive characteristics outperformed a (S) Sensing team leader; intuitive persons are whole picture oriented and have an innovative ability to assess alternate solutions. Also a (F) Feeling team leader outperformed a (T) Thinking leader, because a feeling person is people oriented and makes decisions based on how they affect individuals, making him more effective. Teams with a (T) Thinking type analyst outperformed a (F) Feeling type; the analytical skills are more important than behavioral skills. Teams with (E) Extroverted programmers outperformed those with (I)

4. RESULTS Teams formed in our case studies did result enthusiastic teams, motivated and with a low percentage of conflicts. Each member developed his role accordingly to his capacity and personality. The object of using Personality Tests is identifying characteristics of each person to develop the best suited role in a work team. Table 1 illustrates Personality Test results applied to each member of our first case study, indicating personality dimensions resulted

246

Assigning roles based on personality tests suggest that teams must have an architect that is (E) extroverted, an analyst with a (S) sensing and (T) thinking types, and programmers contrary to the opinion that interact with lot of people, we consider them (I) introverted type most suited because they only dedicate themselves to code building, and analysts and chief programmers are the ones in contact with several parties; these observations deserving more substantial evidence with further study.

with the highest individuals’ evaluated trait, it also shows relationships obtained between Personality Test results applied to each individual and their Career-Job related to its Jung Type. As we can see members are a majority of designers, programmers or good in administration, traits of a software engineer. The methodology applied in our first case study assigned a specific role to each team member in accordance to these results: architect, administrator-analyst, developer-designer, and programmer. Architects of each team were ENTJ type, members 8 and 11 who are associated with designer or administrator types were chosen as architects derived from an analysis of their interview and other personality tests.

In our experiences with this methodology applied in courses we can find three scenarios; the first is every member working accordingly with their responsibilities and developing as a successful work team. In a second scenario members are working pleasantly together but have problems understanding functions of the role assigned, in this case a clarification of their responsibilities helps us to guide the working team. The third scenario is one that can present conflicts between members, even though with this methodology the work team integrates members that want to work together, it can occur that a role assigned to one member was not best suited for, or it was in our opinion best suited for but in middle of the project this member acquired different responsibilities that diverted him from the team objective. Or an individual that had no acceptance in the group was forced to be integrated to a team by the dynamics of the course and being a conflicting person by nature, causes differences of opinion within the group. In this later case a pep talk or lecture with all members can help alleviate the problem and march on with the work team goals. The aspect of resolving conflicts in work teams can be another broad subject that considers exploring, we think that managing and resolving conflicts derived from personal relationships and the incompatibility of members during this type of academic courses can enhance the learning process with real experiences of team problem solutions for life.

Statistics from 2007 until 2009 were taken from 56 software engineers working in real projects, 88 roles in software development teams were assigned. Of these 15 were analysts, 15 architects, 20 developer/programmers, 14 documenters, 15 tester and evaluators, and 9 for image and presentation. As explained in ISCI 2010 [20] with a mean weighs method applied to attributes’ frequencies table 2 was obtained, viewing MBTI types and Software Engineering Roles performed. Table 2. Software Engineer Roles weights ANA

ARC

DEV

DOC

TST

PRS

**J1

0.513

0.524

0.113

0.47

0.385

0.233

J2

0.12

0.272

0.101

0.171

0.189

0.384

J3

0.267

0

0.031

0.077

0.28

0.209

J4

0.053

0.061

0.346

0.068

0

0

J5

0

0

0.189

0.051

0.056

0.093

J6

0.047

0.054

0.025

0.06

0.049

0

J7

0

0.048

0

0.043

0.042

0.081

J8

0

0.041

0.019

0.034

0

0

J9

0

0

0.088

0.026

0

0

J10

0

0

0.075

0

0

0

J11

0

0

0.013

0

0

0

At this stage of our work teams have been fulfilling their expectations and fulfilling their roles. The majority of opinions on integrating a work team for a software development project have been positive. A student states “role assignment worked in our team because the roles were fitted to our capabilities”. Teams formed have been successful and cooperative; have finished their jobs with great accomplishment. Participating with a specified role gives them the opportunity to learn specific role functions in software developing project teams. Another student states “I was speculative about my role, but it gave me the opportunity to develop into it and learn from the experience”. With the implementation of RAMSET, it gives a student an opportunity to exploit their best skills, abilities, attitudes and traits in developing a role thus building a successful and efficient work team with other people. Future work could be done in an organization environment looking for more industrial-based scenarios, to prove the feasibility of this methodology in teams that know each other and have work for a long time, and with teams that recently know each other and are still coping to integrate themselves.

**J1=ESTJ, J2=ENTJ, J3=ESFJ, J4=ISTP, J5=INTJ, J6=ISTJ, J7=ISFJ, J8=ESFP, J9=ISFP, J10=ESTP, J11=ENTP If we only consider Jung’s MBTI Test we observe that ESTJ type is a highly qualified individual to perform different roles, our statistics recommend an Analyst or Architect role. For an ISTP individual Developer or Programmer is best fitted, an ESTJ for Tests although others can perform this role. And for our presenter and image we recommend an ENTJ, it can also be ESTJ or ESFJ. Viewed by those not recommended, types ESFP, ISFP, ESTP, ENTP should not be assigned as analysts, architects or testers and ENFP, INTP, INFJ, INFP haven’t been considered for any role.

5. CONCLUSION Through the years in Software Engineering Courses, usual integration of work teams for software development projects has form all kind of teams, conflictive teams, good working teams, mediocre teams, excellent teams. Teacher’s intuitive experience is the main tool for integrating the best teams. Using the

Analyzing by attributes ESTJ type is an analyst and architect being (E) extroverted and with good (J) judgment to relate with other people and take important decisions. A developer or programmer is an ISTP a commonly (I) introverted person and (T) thoughtful to his work with good logic for problem solving.

247

[9] Y. Dubinsky and O. Hazzan. 2006. Using a Roles Scheme to Derive Software Project Metrics. Journal of Systems Architecture 52, 11 (November 2006) 693-699.

sociogram technique and personality tests has helped us in forming working teams less conflictive, those which by having more affinity between their members form natural groups that work more fluidly and perform better.

[10] V. Pieterse, D. Kourie and I. Sonnekus. 2006. Software Engineering Team Diversity and Performance. In Proceedings of annual SAICSIT 204 (Somerset West South Africa 2006) 180-186.

We come to the conclusion that integrating work teams is a highly potential area of exploration, whereas the influence of personality in team role assignment is a task to be clearly defined. It is latent the difficulty to assign the adequate role to each member so the team can perform with success. A follow up in the Software Engineering Courses of our program is giving us numbers to define the attributes, traits and types of each team role best suited to impact on the efficiency of the team, giving us a more clear idea to define an automated tool for support of our RAMSET methodology. A Fuzzy Model System is being proposed to define an application that will aid in choosing developers, analysts or designers for software development project teams. The follow up of RAMSET not only in Software Engineering Courses but in other courses of the same program can give us a comparative study about the assignment of roles in work teams based in personality, confirming RAMSET as a methodology for integrating teams and an instrument to select personnel for Software Engineering Teams.

[11] J. Hogan and R. Thomas. 2005. Developing the Software Engineering Team. In ACM ICPS 106 proceedings of 7th ACCE 42 (Newcastle New South Wales Australia 2005) 203-210. [12] G. Beranek, W. Zuser and Th. Grechenig. 2005. Functional Group Roles in Software Engineering Teams. In HSSE’05 (St. Louis Missouri USA May 2005) 1-5. [13] M. Belbin. 1993. Team Roles at Work. ButterworthHeinemann. [14] S. Shen, S.D. Prior, A.S. White and M. Karamanoglu. 2007. Using Personality Type Differences to Form Engineering Design Teams. Engineering Education. 2, 2. (2007) 54-66. [15] D.J. Wilde. 2003. Creative teams, individual development and personality classification. ME310 Course Notes. Mechanical Engineering, Stanford University

6. REFERENCES

[16] A.S. Sodiya, H.O.D. Longe, S.A. Onashoga, O. Awodele. 2007. An Improved Assessment of Personality Traits in Software Engineering. Interdisciplinary Journal of Information, Knowledge, and Management. 2 (2007) 163177.

[1] Ander-Egg E., Aguilar M.J. 2001. El trabajo en Equipo. Ed. Progreso, México. [2] Guinan, P.J., Cooprider, J.G. and Faraj, S. 1998. Enabling Software Development Team Performance During Requirements Definition: A Behavioral Versus Technical Approach. Information Systems Research. 9, 2 (1998), 101-125.

[17] L. Layman, T. Comwell and L. Williams. 2006. Personality Types, Learning Styles, and an Agile Approach to Software Engineering Education. In ACM 37th SIGSE TSCSE (Houston Texas USA, March 2006)428-432. DOI= http://doi.acm.org/10.1145/1121341.1121474

[3] Smith, D.C., Bwecher, M., Burns-Howell J. and Kyriakides, J. 2001. Creating High Performance IS Teams. In SAICSIT (Pretoria SouthAfrica 25-28 September 2001) 172-181.

[18] J.E. Tomayko. 1996. Teaching a Project-Intensive Introduction to Software Engineering. SEI Tech. Rep. Carnegie Mellon University Pittsburgh Pennsylvania.

[4] J.L. Moreno. 1953. Who Shall Survive? Foundations of Sociometry, Group Psychotherapy and Sociodrama. Beacon House, Inc. Beacon New York.

[19] U.S. Department of the Interior. Available: http://permanent.access.gpo.gov/websites/doigov/www.doi. gov/octc/typescar.html

[5] J. Greenbaum, M. Kyng. 1991. Preface of Design at Work: Cooperative Design of Computer Systems, Lawrence Erlbaum Associates, Inc., Hillsdale, NJ.

[20] Martinez M. Luis, Licea G., Rodriguez A., Castro J.R. 2010. Towards a Fuzzy Model for RAMSET: Role Assignment Methodology for Software Engineering Teams”. In International Seminar of Computational Intelligence (Tijuana Mexico 19-20 January 2010) ISCI 2010, in press.

[6] C.G. Jung. 1976. Psychological Types. Bollingen Series XX, 6. Princeton University Press. [7] M.R. Barrick and M.K. Mount. 1991. The Big Five Personality Dimensions and Job Performance: A MetaAnalysis. Personnel psychology 44, 1 (1991) 1-26. DOI= 10.1111/j.1744-6570.1991.tb00688.x [8] N. Gorla and Y.W. Lam. 2004. Who Should Work With Whom? Building Effective Software Project Teams. Comm. of the ACM. 47, 6 (June 2004) 79-82.

248