Should your human resources department be choosing extroverts, introverts, thinkers or ‘judges' for your next software engineering project? Or maybe some of each?
Hiring people for the various phases of a software development project based on their personality type can be important to a successful outcome, say researchers Luiz Fernando Capretz and Faheem Ahmed.
"Sooner or later, major issues relevant to software engineering boil down to the people involved and their personality traits," says Capretz, an associate professor and director of the Software Engineering Program at the University of Western Ontario.
"Not everyone can perform all tasks effectively," adds Ahmed, an assistant professor at United Arab Emirates University. "Personality traits play a critical role." For example, he says personality traits such as introversion/extroversion can have a significant impact on system analysis but may not affect other software life-cycle phases.
Capretz and Ahmed recently completed a study that maps software- development tasks and skill requirements with personality traits. Their goal was to establish a link between software engineering life-cycle phases and corresponding personality types in hopes of establishing the best personality fit for each phase.
For the study, they mapped the soft skills required for each stage of a software development project and matched those with the psychological types defined in the Myers-Briggs Type Indicator (MBTI).
The MBTI is a well-known instrument for measuring and understanding individual personality types, which it breaks down into four dimensional-pairs categories:
Extroversion (E) and Introversion (I)
Es prefer looking outward, while Is have an inward view. Es are talkative, outgoing conversation initiators. Is are quiet, reserved and tend to respond to conversation rather than start it.
Sensing (S) and Intuition (N)
S individuals absorb a series of facts in a linear fashion and dislike new problems unless prior experience shows how to solve them. N people take in information through abstraction and establish meaning beyond the information captured by the senses. They enjoy solving new problems and dislike performing trivial tasks.
Thinking (T) and Feeling (F)
Thinking and feeling refer to the decision-making process. T individuals use logic to make decisions, are principle-oriented and firm. F types rely on emotional values when making decisions, are subjective and have strong interpersonal skills.
Judging (J) and Perceiving (P)
J individuals are extremely organized, punctual, meet deadlines and like closure. P types prefer delaying, appear disorganized and distracted, and complete tasks at the last minute. They are open-ended, adaptable and spontaneous.
The Research
For the study, Capretz and Ahmed first characterized software engineering as a set of activities comprising system analysis, design, programming, testing, and maintenance.
They analysed software engineering job descriptions from newspapers, magazines and the web, determined the preferable skills and related those to soft skill requirements. They then focused on skills rated as desirable and highly desirable for performing tasks in each software engineering phase, and related them to the MBTI personality dimensions.
Their results for each stage are:
System analysis
This phase demands a great deal of human interaction with users and clients, including the ability to empathize with users. "Es and Fs interact better with users than Is and Ts," says Ahmed. "In particular, Fs excel at making people feel comfortable, whereas Ts aren't attuned to user feelings. When appointing systems analysts, it's preferable to look for EFs."
Software Design
This exploratory process is arduous, time-consuming and repetitious since there could be several design iterations. "Software designers should be able to see the big picture and isolate relevant items through intuition and an ability to discern patterns," says Capretz. "N and T types are highly desirable for software designers, whereas perceiving (P) and feeling (F) are only somewhat desirable." Ps, he says, would help reach the best, rather than the first, design solution.
Programming
Programming involves translating a refined version of the design into programs. This phase entails identifying control structures, relevant variables and data structures, as well as a detailed understanding of programming language. "Programmers need to work independently, attend to details and keep a logical and analytical thinking style," says Capretz. "So it isn't surprising that so many software engineers are ISTs."
Testing
Testing involves finding defects in software. Testing strategies are methodical and systematic, and debugging can be frustrating and emotionally challenging. The pressure to meet deadlines and deliver the product is enormous. "Precision (S) and order (J) are highly desirable traits," says Ahmed. "Testing demands great persistence. We feel S and J people would be more successful in this phase."
Maintenance
Software systems evolve over time, which requires ongoing maintenance. "Since S people prefer jobs that require the use of well-learned knowledge and are also very good observers who tend to focus on details, they would excel at maintenance because they like to figure out how things work," says Ahmed. P types, who like to explore every possibility and have difficulty making decisions, would also enjoy maintenance because they're more open to changes and adaptations. "The best personality type here," says Ahmed, "is SP because these people like to solve practical problems and enjoy the challenge of fixing programs and systems."
The researchers emphasize that no single personality type fits the wide spectrum of tasks associated with software engineering. A diversity of skills, they say, is good for solving problems, since different personalities will view a problem from several different perspectives.
"We found that the strongest teams had the most diverse perspectives," says Capretz. "And we feel that organizations would benefit from making a conscious attempt to diversify the personality types among their software engineers. We also believe that organizations should consider the psychology behind software engineering in order to help this diversity flourish.
Contributing authors: Dr.Luiz Fernando Capretz and Dr. Faheem Ahmed
Source: Capretz, L. F. and Ahmed, F. "Making Sense of Software Development and Personality Types", IT Professional, 12:1, Jan.-Feb. 2010, pp. 6-13.
PMPerspectives.org is a website which connects project managers and sponsors with project management researchers. Our mission is to understand and improve project management practices. The research team comprises Dr. Blaize Horner Reich and Dr. Andrew Gemino from Simon Fraser niversity, Canada and Dr. Chris Sauer from Oxford University, UK.
© Reich, Gemino, Sauer (2010)