MBTI - UCSY

Software Development and Personality Traits
Luiz Fernando Capretz
Department of Electrical and Computer Engineering
Western University
London, Ontario, Canada, N6A5B9
[email protected]
importance. This article represents an important step
towards a theory that links software engineering and
personality styles.
Note: This paper was presented as an invited talk at the
Tenth
International
Conference
on
Computer
Applications (ICCA 2012), held at the University of
Computer Studies, in Yangon – Myanmar, February 28th
and 29th, 2012. Therefore, the content of this paper and
the talk appeared in the author’s and speaker’s previous
publications, which appear in the list of references.
2. Myers-Briggs Type Indicator (MBTI)
As a starting point, it is fundamental to introduce the
four scales of the MBTI [10]. Used correctly, the MBTI
is a method for measuring and understanding individual
personality types. It can reveal how people prefer to
receive information, how they form opinions, and how
they communicate. The MBTI ranks now among the most
popular tools used in the workplace for analyzing
personality types. This indicator establishes four
parameters for assessing personality types. We all have
the personality qualities contained within each scale or
parameter, but we naturally prefer some qualities or are
more comfortable with some traits than others. With the
MBTI, each scale is bimodal with its central point having
a zero value. Each respondent is forced to choose
preferences; the higher the score on each preference, the
stronger that preference is likely to be.
1. Introduction
Software is a word with a fuzzy perception. People
who talk about software may be thinking about the
structure of a program, the functionality of an application
system, the look and feel of an interface or the overall
user experience with a hardware-software environment.
Software engineering spans both new software
developments and the maintenance of legacy systems,
each software life cycle phase bringing its own context of
understanding about what matters, what can be designed,
and what tools and methods are appropriate.
Software engineering has become a very broad field
of study; consequently the skills necessary to successfully
work in this area thirty years ago may no longer apply.
For instance, software design has become more than
manipulating formal or semi-formal notations, but
revolves around the interaction between designers and
users; namely, the designer’s perception of what the user
wants, and the user’s perception of what he/she really
needs. Nowadays, successful software is developed after
a tremendous amount of time has been spent with the user
in the form of prototyping, experimentation and feedback.
This is the proper life cycle of any useful software
system.
2.1 Extroversion and Introversion (E and I)
The first scale represents complementary attitudes
towards the external world. Whereas the extrovert prefers
looking outward, the introvert has an inward view. For
example, strong extroverts are sometimes said to ‘talk to
think’ whereas introverts ‘think to talk’. The implications
of these terms go beyond the everyday caricatures of
sociable versus shy. Extroverts are talkative, initiators of
conversation, and outgoing. They prefer action and
variety. Introverts, in contrast, are quiet, reserved, and
respondent to conversation rather than initiate it. They
like quiet and time to consider matters. Extroversion
implies as a tendency to be talkative, lively, and
expressive; introversion describes a person that is quiet,
introspective, and reserved.
Research relating personality styles to software
engineering has been both scattered and difficult to
interpret uniformly. It may be that the relation between
software engineering and personality styles is too
complex to investigate. For instance, it may be that
certain personality traits such as introversion/extraversion
have a great impact on system analysis, but not so much
on other phases. Thus, studies to determine which
personality profiles are more attracted to what activities
related to software development are of paramount
1
Summarizing, the MBTI sorts these four sets of
preferences, one from each pair, to delineate a person’s
preferred type. Hence, there are 16 possible
configurations, as shown in table 1, and displayed as well
are the percentages of the various types among a
representative sample of the U.S.A. adult population [10];
these percentages may vary from one country to another.
If the MBTI results show that a person is ISTP, the
terminology suggests that the person prefers ISTP type,
not that the person is an ISTP. There are no rights or
wrongs in the personality types, merely preferences.
2.2 Sensing and Intuition (S and N)
The second scale of preference distinguishes the way
that we assimilate information from the environment.
While a strong S might need to absorb a whole series of
facts in linear fashion, a strong N can take in the same
information through abstraction and concepts that, while
initially not seeming to be directly related, can establish
meaning beyond the information supplied only by the
senses. S dislikes new problems unless prior experience
shows how to solve them; N likes solving new problems,
and dislikes doing the same thing over and over again.
The adjectives that describe a sensing person are realistic,
practical and fact-oriented; while those of an intuitive
person are speculative, imaginative and principleoriented. Of course, we all share both sets of qualities to
some extent, but one set usually predominates.
Table 1. The 16 MBTI types and their distribution
among the USA adult population.
ISTJ
11.6%
ISTP
5.4%
ESTP
4.3%
ESTJ
8.7%
2.3 Thinking and Feeling (T and F)
The third mode of orientation in the MBTI
classification is thinking and feeling. Again, these terms
are more comprehensive than everyday usage would
indicate. After gathering information, some decision has
to be made about how we process that information. This
scale of preferences identifies thinking as the logical way
of making a decision, while feeling describes the
tendency to rely on values as a basis for making
decisions. Thinking people are principle-oriented, coolheaded and firm, whereas feeling people are emotionoriented, warm-hearted and have good interpersonal
skills.
ISFJ
13.8%
ISFP
8.8%
ESFP
8.5%
ESFJ
12.3%
INFJ
1.5%
INFP
4.4%
ENFP
8.1%
ENFJ
2.5%
INTJ
2.1%
INTP
3.3%
ENTP
3.2%
ENTJ
1.8%
3. Previous Studies
Human factors in software engineering have different
dimensions. Studies have been performed from different
perspectives. These perspectives could be the study of
human factors in different phases of software life cycle,
or the effect of team work in software development, or
how can a personality profile suit a particular task or
about some other miscellaneous issues.
Karn and Cowling [7] studied the effects of different
personality types using MBTI on the working of some
software engineering team. The study describes how
ethnographic methods could be used to study SE teams,
to understand the role of human factors in a software
project. The results of the study indicated that certain
personality types were more inclined to certain roles.
2.4 Judging and Perceiving (J and P)
The fourth scale differentiates between how we orient
our lifestyles and organize our world. J identifies the
tendency to be super-organized. If a deadline is to be met,
the strong J usually finishes the task well in advance. At
the other extreme, the person who prefers perceiving
appears to be very disorganized and seems to be
distracted from completing a task until some little bell
goes off at the last minute and propels this individual to
get the job done; Ps do not like decision-making. Often, it
is said that the easiest way to distinguish between these
two preferences is to look at the person’s desk. The desk
of a J is immaculately organized, the desk of a P appears
to be in constant chaos even though the P individual
claims to know exactly where everything is located and
that there are rules underlying the apparent chaos. The
descriptors: deadlines, punctual, closure and routine apply
to judging types, whereas open-ended, tentative,
adaptable and spontaneous apply more to perceiving
types.
A few empirical studies have investigated the
relationship between MBTI and software engineering.
Sitton and Chmelir list some [12] stereotypes of
programmers and what it is that attracts them to the
computer field. Their study paints a picture of creative
professionals
merrily
and
irreverently solving
complicated problems, untrammeled by routine and
humdrum details; however, it gives no specific statistics
regarding their findings. Bush and Schkade [4] tested 58
professionals involved with scientific programming in one
aerospace company. They found that ISTJ (25%) to be
the most common type, with the second most frequently
reported type being INTJ (16%), and ENTP (9%) being
the third. They also found thinking (74%) and judging
(70%) to be very common.
2
Buie [3] took a sample of 47 scientific computer
professionals employed by a private company under
contract with NASA who were performing work on
orbital-related software. ISTJ (19%), INTP (15%) and
INTJ (13%) were the most frequent types, with those
three collectively accounting for nearly half the sample.
ESFJ (0%), ISFP (0%) and ENTP (0%) were particularly
underrepresented. The hypothesis that scientific
programmers would tend toward an over-representation
of Is, Ns, and Ts was supported.
among software professionals [15]. While these empirical
studies suggest that the MBTI poles are related to
software engineering, it does not suggest at which phase
of the software life cycle or how they are related. A more
focused framework may help quantify at which software
development phase a particular personality type has the
most significant impact. This fundamental issue is tacked
in this article.
Hardiman [6] has claimed that the MBTI may be the
best predictor of who will become a competent
programmer. He observed that the majority of good
software engineers were ENTJ, INTJ, ESTJ, ISTJ, ISFJ,
and ENTP, in brief, mostly NTs and SJs. He also implies
that NF types tend to have trouble with the sequential and
process-oriented thinking required to produce software.
What consideration should be given to the skill needed by
systems analysts who interact users and should empathize
with customer’s problems? Cannot NFs handle this better
than NTs and SJs?
Smith [13] dealt with 37 systems analysts at a large
insurance company. The most frequent types in the
sample are ISTJ (35%) and ESTJ (30%). From the
results, there were slightly more introverts (57%), but
there was also a heavy bias towards the sensing (81%),
thinking (89%) and judging (86%) types. Interestingly,
the four NF (third column in table 1) combinations were
not present at all in this small sample. Larger and diverse
samples would allow more comprehensive data and
definitive conclusions.
We believe that they can. Indeed, good software
development requires a broad set of skills. If a team lacks
people with certain preferences, others may have to
perform with dissatisfaction the tasks that would be
natural for the excluded people. The software industry has
become a major force in society. It has, in fact, generated
many commentaries on the unique contributions of
professionals engaged in its many sub-areas. Specialties
within software engineering today are as diverse as any
other profession. Software engineering comprises stages
in separate and distinct flavors, such as: system analysis,
design, programming, testing, and maintenance. It is
certain that some soft skills affect one phase but not
others, or affect phases in different fashions [17].
Lyons [9] surveyed 1229 software professionals from
more than 100 companies, including insurance
companies, financial institutions, utilities, and hardware
manufacturers. He too found ISTJ (23%) to be the most
common type, INTJ (15%) to be the second, and INTP
(12%) to be a close third, noting that these three types
composed 50% of his sample. He found thinking (81%)
and judging (65%) types to be in the majority;
furthermore, he also found that 67% of his subjects were
classified as introversion types. He was the first to
observe that R&D organizations and companies that do a
lot of state-of-the-art development attract and hire more
Ns than Ss. The opposite occurs in large organizations
where the bulk of the work involves maintaining and
enhancing production software systems.
Kerth et al. [8] are skeptical about the application of
MBTI to predict who is going to make a good software
engineer because MBTI does not consider variables such
as passion, experience and skills, among others. They are
right about the inability of a single personality test to
predict success in a field as broad as software
engineering, where different skills are needed for system
analysis, design, testing, security, maintenance and
technical support. Nevertheless, they contradict
themselves in the article when they write: ‘We see zero
indication that MBTI preference correlates with job
success’, but later affirm: ‘systematically excluding
certain types from a team produces a imbalance that is
likely to have a poor performance’.
As companies rely more heavily on project teams and
expect software engineers to partner with their customers,
opportunities for conflicts abound. When it comes to
personality types, opposites do not always attract. When
software professionals discuss how a task needs to be
accomplished, they tend to be poor at verbalizing how the
task affects the people involved. In fact, the greatest
difference between software engineers and the general
population is the percentage who takes action based on
what they think rather than what they feel. That does not
help bring software engineers closer to their customers. In
fact, it shows that computer literacy is not enough.
Software engineers also need emotional literacy and
mutual understanding to build teams and work well with
users. There should be a clear association between
activities/roles and personality types.
We believe that such a debate is far from over.
Psychological assessment instruments have been used for
over sixty years and have reached a mature stage for
job/career selection and for predicting behavior [2]. Many
of these instruments are based on the theories of C. Jung
and S. Freud. MBTI has been one of the most popular
tools used in the workplace for analyzing personality
The common thread running through the results of
these studies is the prevalence of introverts, thinking,
judging, and almost as many sensing as intuitive types
3
types; the reason: MBTI has been backed by extensive
data; its profiles of which personality types are attracted
to which specific occupations, for instance, comes from
more than two million indicators administered annually
all over the world.
Table 2. Type distribution of software engineers and
SRTT comparison with an adult population sample.
(N = 100, ‘+’ = 1%, I=selection ratio index, “p<.05 #p<.01 *p<.001)
ISTJ
24%
ISFJ
2%
INFJ
1%
INTJ
7%
I=2.08*
I=0.14#
I=0.68
I=3.40*
++++++++++++
++
+
+++++++
ISTP
8%
ISFP
5%
INFP
2%
INTP
8%
I=1.49
I=0.57
I=0.46
I=2.46#
++++++++
+++++
++
++++++++
ESTP
8%
ESFP
1%
ENFP
3%
ENTP
7%
I=1.87
I=0.12#
I=0.37
I=2.19”
++++++++
+
+++
+++++++
ESTJ
15%
ESFJ
4%
ENFJ
1%
ENTJ
4%
I=1.73”
I=0.33”
I=0.41
I=2.23
++++++++
++++
+
++++
++++++++++++
+++++++
students are already working as software engineers. This
supports a greater generality of the results reported in that
investigation. The type distribution of the software
engineers is summarized in Table 2.
Capretz [5] investigated the profile of a group of 100
software engineers (80% male and 20% female) who study
in private or public universities, or work for the government
or for software companies. They are all productive and
motivated software engineers and were selected to
participate in this study based on their occupation. All were
administered the MBTI (Form G) to assess their personality
types.
In Table 2, the letter I refers to the ratio known as the
self-selection index in the Selection Rate Type Table
(SRTT). The ratio is computed comparing the percentage of
the observed frequency to the expected frequency. When
the ratio is greater than 1.00, there are more people in that
cell of the table than we expected considering their numbers
in the general population. If the ratio is less than 1.00, there
are fewer people (in that cell) than expected in the general
population. SRTT also indicates the statistical significance
This study is relevant because it considers a range of
pertinent groups such as employed professionals, senior
undergraduate students as well as graduate students. Some
4
(p) of the results represented by a chi-square calculation
whenever possible. A quick inspection of the sixteen types
shows that all four NT types and two ST types have indices
greater than 1.00 showing the trend that NT and ST are
over-represented among software engineers. On the other
hand, all four SF types have indices much smaller than 1.00
confirming that SFs are under-represented among software
engineers.
found differences as high as 10 to 1 of programmers with
similar backgrounds regarding programming performance.
Bishop-Clark [1] investigated the relationship between
cognitive aspects, personality traits and computer
programming. She divides programming into several stages:
problem representation, program design, implementation,
and debugging. She organized the theories and the
empirical studies of computer programming into four subtasks: problem solving, designing, coding, and debugging.
The cognitive styles discussed in some detail include: field
dependency/independency,
analytic/holistic,
impulsivity/reflectivity, and divergent thinking; the
personality traits include locus of control, and
introversion/extroversion. These variables were mentioned
because, according to her theory, they were all important
within the realm of computer programming. Cognitive
styles have been studied as factors that may help explain
some of the variability; however, they have failed to
consistently explain individual preference towards
computer programming as opposed to, say, system analysis.
MBTI offers a potential to provide a model for comparison.
This study has shown that ISTJ, ISTP, ESTP and ESTJ
compose over 50% of the sample and are, therefore,
significantly over-represented, whereas INFJ, ESFP and
ENFJ are all particularly underrepresented in the group. TJs
(corners of table 2), STs (1st column in that table) and NTs
(4th column) are abundant among software professionals.
On the other hand, SFs (2nd column) and NFs (3rd column)
are scarce. It is worth noting that there are more ISTJ (24%)
than any other type and there is a cluster of sensing,
thinking and judging (STJ). This is generally congruent
with the type theory.
In this research also found more introverts (I=57%) than
extraverts (E=43%), significantly more sensing (S=67%)
than intuitive (N=33%) types, greatly more thinking
(T=81%) than feeling (F=19%) types, and fairly more
judging (J=58%) compared to perceiving (P=42%) types. It
is also noted that STs compose 55% of the subjects, TJs
comprise 50% and ITs add up 47% of the sample. On the
other hand, SFs make up to only 12%, and NFs represent a
mere 7% of the subjects.
The majority of studies treat software engineering as a
single activity, mainly programming. However software
engineering has been characterized as a set of activities
involving distinct phases, such as: system analysis, design,
programming, testing and maintenance; each of which
demands different abilities. Indeed, each phase involves
varied tasks that require different skills. For instance, the
skills and activities involved in designing a software system
are quite different from the skills and activities involved in
testing the software. In fact, each of these phases should be
studied independently, and if necessary, they must be
further subdivided. Clearly, each software development
stage will be affected by MBTI variables to some degree.
The largest single type among the subjects is ISTJ.
MBTI data collected over many years show that only 11.6%
of the U.S. adult population falls into this category as
compared with 24% in our studies. From a statistical
perspective, this is a significant finding. Further, the second
most frequently reported type is ESTJ, with 15% of the
subjects fitting in this category as compared with 8.7% of
the U.S. adult population. ESFPs, incidentally, accounted
for 1% of the subjects in the sample compared to 8.5% in
that general population, a finding reflected by the lowest
ratio (I=0.12). It is clearly seen that there are dramatic
fluctuations between ISFJ (I=0.14), INTJ (I=3.40, the
highest), as well as that are present in the general
population.
Firstly, we should address one fundamental question.
What happens during software development? Figure 1
shows the five stages of a software life cycle model and
proposes an approach to conceptualize the points at which a
particular dimension of personality trait may have some
impact. The waterfall model is depicted in Figure 1 because
it is the best known software life cycle and its phases are
often part of other models. A particular personality
dimension may influence each of the five phases to some
extent, whichever model is used. A full description of this
work is shown in Capretz and Ahmed [16]. The theory
behind each of the personality variables suggests that it is
likely to impact some phases more than others. The
personality dimension that appears most relevant to each
phase is shown on the diagram and the rationale for each is
described beneath. In other words, this diagram has been
developed by overlapping some aspects of the MBTI theory
and the tasks defining each stages of a software life cycle
4. Software Development Phases and MBTI
Within the field of software engineering there is
agreement that there are tremendous differences among
individuals’ achievement in programming. Instructors of
programming courses witness first hand the huge variety
among students in learning achievement and programming
assignments. Shneiderman [11] reports that researchers
5
model, and shows the potential impact of MBTI variables
E-F
on the software life cycle.
System
Analysis
N-T
Design
I-S-T
Programming
S-J
Testing
S-P
Maintenance
Figure 1. MBTI dimensions and the phases of a software life cycle model.
understand the application and the requirements of a
particular software system. Hence, the systems analyst’s
tasks have a high interpersonal component because of the
analyst’s frequent interactions with users. This can be a
critical insight for information systems professionals, who
are often viewed as disconnected from users.
4.1 System Analysis
The system analysis phase emphasizes identification of
high-level components in a real-world application and
decomposition of the software system. The system analysis
phase demands the system analyst to:

Understand the system essential features.
4.2 Design
 Consider the requirements expected to be satisfied
by the software system.
“Design” is an ambiguous word. Although there is huge
diversity among design principles, we can find common
concerns and principles that are applicable to the design of
any artifact, whether it is a poster, a household appliance, or
a housing development. In particular, software design is
still a young field, and we are far from having a clear
articulation of the relevant principles. Software design is a
user-oriented field, and as such always requires the human
creativity possessed by other disciplines such as
architecture or graphic design, rather than the hard-edged
formulaic certainty of engineering design.
 Create an abstract model of the application in
which these requirements are met.
During this phase, an abstract model of the application
comprising high-level abstractions of software components
is better understood. The main product of the system
analysis phase is a graphical or textual description (informal
or formal) of an abstract model of the application. System
analysis also requires a great deal of human interaction with
users and clients. It seems likely that introversion would
especially affect this phase. Therefore, a systems analyst
needs to have a strong inter-personal skills linked with
conceptual thinking ability and an inquiring mind.
Introverts are more likely to attempt to understand a
situation with books and internal thoughts rather than
discussing the problem with clients or peers. It may be that
introverts have a difficult time achieving a problem
representation with the clients due to their internal
orientation. This also demands the software engineers
interact with other in such a way that they come to
Software design is an exploratory process. The designer
looks for components by trying out a variety of schemes in
order to discover the most natural and reasonable way to
refine the application. There has been a tendency to present
software design in such a manner that it looks easy to do.
Nevertheless, in the design of large and complex software,
identification of key components is likely to take some
time. Repetitions are not unusual, since a good design
usually takes several iterations. The number of iterations
6
also depends on the designer's insight and experience in the
application domain.
Testing strategies are neither random nor haphazard, but
should be approached in a methodical and systematic
manner. Even, after a fault is detected, debugging can be a
frustrating and emotionally challenging activity that may
lead software engineers to restructure their thinking and
decisions. This requires a great deal of persistence to
choose from an enormous range of possibilities and to
maintain an incredible attention to detail. In theory, judging
people would be more successful in the testing phase than
perceivers.
Naturally, there is also a tendency towards intuition, and
normally those who are imaginative and innovative, thrive
during design compared with their sensing counterparts. Ss
like jobs that require the use of well-learned knowledge, not
the development of new solutions. They are very good
observers and like details. Ns are creative and enjoy
abstract symbolic relations, finding patterns rather than
dealing with details. They like to create new knowledge
rather than applying existing techniques.
4.5 Maintenance
Software is normally subject to continuing changes after
it is written, and it is operational. Thus the efforts turn to
the challenge of maintaining a continually evolving system.
It can be observed that projects involving research and
state-of-the-art development tend to attract more intuitive
people, whereas those having tasks concerned with
maintaining and enhancing software systems tend to attract
more sensing types. Sensing types tend to be practical,
realistic, and observant. An intuitive person puts more
emphasis on new projects. It can be generalized that an S
person will often prefer to perform a task in a particular
fashion because it has been done that way before and it
worked. The N person will prefer to perform the task some
other way, for the very opposite reason! Thus Ns are likely
to be bored with software maintenance.
4.3 Programming
Programming involves translating a refined version of
the design into a programming language in order to provide
the overall software services. This phase requires
identification of control structures, relevant variables and
data structures, and a detailed understanding of the syntax
and specifics of a programming language. This usually
follows an iterative stepwise refinement process that is
mostly top-down, breadth first. Therefore programmers
should attend to details and maintain an open, logical, and
analytic (thinking) style.
The thinking/feeling dimension of the MBTI describes
the way in which one makes decisions. The problem of
interpreting and giving meaning to variables may be a
problem especially for feeling types rather than for
detached analytical, thinking types, suggesting that the
programming stage is more problematic for feeling types.
Programming is an activity that demands logical impersonal
analysis (thinking). Programming tasks, such as determining
details of module logic, establishing file layout, and coding
programs show little requirement for interpersonal contact
and reveal the programmer’s work life as essentially a
solitary one.
5. Final Remarks
Human factors are usually overlooked in software
engineering because the relationship between software
engineering and personality types is extremely complex and
difficult to investigate. Nevertheless, it has been worthwhile
studying a possible relationship between software
engineering and MBTI dimensions. The research addresses
questions of great importance for software engineers – what
are the characteristics of members of the professional
community, and what is the relationship between software
development skills and personality types. In a summary, the
preferences and type distribution in table 2 demonstrate that
the type distribution of software engineers is different from
the type distribution found in a general population,
indicating that software engineers form a particular and
distinct group of professionals.
4.4 Testing
Testing involves finding and correcting (debugging)
errors in a program. The testing stage is not the first time
when errors appear; they can be carried through from the
system analysis and design phases. But testing is focused on
finding faults, and there are many ways to make testing
efforts more efficient and effective.
First, each module is tested on its own, isolated from the
other components in the system. Such testing, known as unit
testing, verifies that a module functions properly with the
various input expected (and unexpected!) based on the
module’s design. After collections of modules have been
unit-tested, the next step is to ensure that the interfaces
among them are well-defined. Integration testing is the
process of verifying whether the system components work
together properly.
The results presented here are important to employers
looking for software professionals as well as to students
looking for a career in the software field. This investigation,
however, has not taken into consideration other motivations
that might affect a career choice, such as: money,
recognition, autonomy, power, security, etc., nor a career
path such as managerial, technical, entrepreneurial, and so
on. We must remember that MBTI sorts preferences; it does
7
not measure success. Sodan [14] claims that for personal
work as well as relations to be successful, a number of
psychosocial qualities are required, and she proposes a
model based on the Yin/Yang duality. Due to the diverse
nature of software engineering, it is widely believed that
personality instruments cannot accurately predict success in
this field.
Because of the diverse nature of software engineering, it
appears to be time to recognize that there is no single style
of personality type that fits the wide spectrum of types that
encompass all software engineering occupations. Most
people are able to either find or create a rewarding niche for
themselves in a profession with the predominance of a
particular type, and achieve satisfaction in a place where
they can be true to their preferences and comfortable with
themselves.
Nowadays there are very few solo performers in most
software organizations; people have to work together in
teams of some sort, and it is almost always good to have
some diversity on the team in terms of psychological type.
In other words, better software will result from the
combined efforts of a variety of mental processes, outlooks
and values. Therefore all types are important to software
development as every type can make a contribution to solve
the so-called software crisis. Thus the software industry
cannot afford to lose would-be professionals who may come
from a diverse group of people.
Finally, it takes variety to conquer variety. Putting it in
software terms, it takes a variety of skills and personalities
to solve the myriad of problems related to software
development and maintenance. It might be suggested that
organizations would be well served by a conscious attempt
to diversify the styles or personalities of their software
engineers, as strong teams are the ones made up of diverse
perspectives. Exposure to MBTI and software psychology
can help this appreciation to flourish. Achieving such a
variety will enable us to bring a richness of talents and
points of view to bear upon the inherent complexity of
software systems.
References
[1]
[2]
[3]
[4]
Bishop-Clark, C. Cognitive style, personality, and
computer programming. Computers in Human
Behaviour, 11 (2), 241-260, 1995.
Blatt, S.J. Where have we been and where are we
going? Reflections on 50 years of personality
assessment. Journal of Personality Assessment, 50 (3),
343-346, 1986.
Buie, E.A. Psychological type and job satisfaction in
scientific computer professionals. Journal of
Psychological Types, 15, 50-53, 1988.
Bush, C.M. & Schkade, L.L. In search of the perfect
programmer. Datamation, 31 (6), 128-132, 1985.
8
[5]
Capretz, L.F. Personality types in software engineering.
International Journal of Human-Computer Studies, 58
(2), 207-214, 2003.
[6]
Hardman, L. T. Personality types and software
engineers. IEEE Computer, 30 (10), 10, 1997.
[7]
Karn, J. S. and Cowling A. J. Using ethnographic
methods to carry out human factors research in software
engineering, Behavior Research Methods, 38 (3), 495503, 2006.
[8]
Kerth, N. L., Coplien, J. and Weinberg, J. Call for the
rational use of personality indicators. IEEE Computer,
31 (1), 146-147, 1998.
[9]
Lyons, M. L. The DP Psyche. Datamation, 31 (16), 103110, 1985.
[10]
Myers, I. B., McCaulley, M. H., Quenk, N. L., and
Hammer, A. L. MBTI Manual: A Guide to the
development and use of the Myers-Briggs Type
Indicator. Consulting Psychologists Press, 1998.
[11]
Shneiderman, D. Software Psychology: Human Factors
in Computer and Information Systems. Winthrop
Publishers, Cambridge, 1980.
[12]
Sitton, S. and Chmelir, G. The intuitive computer
programmer. Datamation, 20 (20), 137-140, 1984.
[13]
Smith, D. C. The personality of the systems analysts: an
investigation. ACM Computer Personnel, 12 (2), 12-14,
1989.
[14]
Sodan, A. C. Toward successful personal work and
relations – applying a Yin/Yang model for classification
and synthesis. Journal of Social Behaviour and
Personality, 27 (1), 39-71, 1999.
[15]
Varona, D., Capretz L. F., Pinero, Y. and Raza, A.,
Evolution of software engineer’s personality profile,
ACM SIGSOFT Software Engineering Notes, 37 (1), 15, ACM Press, January 2012.
[16]
Capretz, L. F. and Ahmed F. Making sense of software
development and personality types. IEEE IT
Professional, 12 (1), 6-13, January/February 2010.
[17]
Ahmed, F., Capretz, L. F. and Campbell P. Evaluating
the demand for soft skills in software development.
IEEE IT Professional, 14 (1), 44-49, January/February
2012.