"Wanted: Young, skinny, wirey fellows not over 18. Must be
expert riders willing to risk death daily. Orphans preferred.
Wages $25 per week."
-Pony Express advertisement, 1860
"We
realize the skills, intellect and personality we seek are
rare, and our compensation plan reflects that. In return, we
expect TOTAL AND ABSOLUTE COMMITMENT to project success -- overcoming
all obstacles to create applications on time
and within budget."
-Software developer advertisement, 1995
The
stereotypical programmer is a shy young man who works in a darkened
room, intensely concentrating on magical incantations that coax
the computer to do his bidding. He can concentrate 12-16 hours
at a time, often working through the night to realize his artistic
vision. He subsists on pizza and Twinkies. When interrupted, the
programming creature responds violently, hurling strings of cryptic
acronyms at his interrupter-"TCP/IP, RPC, RCS, SCSI, ISA,
ACM, and IEEE!" The programmer breaks his intense concentration
only to attend Star Trek conventions and watch Monty Python reruns.
He is sometimes regarded as an indispensable genius, sometimes
as an eccentric artist. Vital information is stored in his head
and his head alone. He is secure knowing that, valuable as he
is, precious few people compete for his job.
USA
Today reported that the techie nerd stereotype is so well
entrenched that students in every grade ranked computer jobs near
the bottom of their lists of career choices. The Wall Street
Journal reported that film crews have difficulty presenting
stories about leading-edge software companies in an interesting
way because every story starts with "an office park, a cubicle,
and a guy sitting there with a box on his desk." Sometimes
the stereotype is fostered even inside the profession. The associate
director of Stanford University's computer science program was
quoted by the New York Times as saying that software jobs
are "mind-numbingly boring."
How
much of the stereotype is true, and what effect does it have on
the programming occupation? To find out, let's look first at the
programmer's personality then at the other elements of the stereotype.
The
Meyers-Briggs Type Indicator
A
common means of categorizing personality was developed by Katherine
Briggs and Isabel Briggs Meyers and is called the Meyers-Briggs
Type Indicator, or MBTI. The MBTI categorizes personality types
in four ways:
-
Extroversion
(E) or Introversion (I) Extroverts are oriented toward the
outside world of people and things. Introverts are more interested
in the inner world of ideas.
-
Sensing
(S) or Intuition (N) This category refers to how a person
prefers to receive decision-making data. The sensing person
focuses on known facts, concrete data, and experience. The intuitive
person looks for possibilities and focuses on concepts and theories.
-
Thinking
(T) or Feeling (F) This category refers to a person's decision-making
style. The thinker makes decisions based on objective analysis
and logic; the feeler relies on subjective feelings and emotions.
-
Perceiving
(P) or Judging (J) The perceiving person prefers flexibility
and open-ended possibility, whereas the judging person prefers
order and control.
After
a person takes the MBTI test, that person is assigned one letter
from each of the four categories, resulting in a designation such
as ISTJ or ENTJ. These letters indicate an individual's
personality tendencies or preferences; they don't necessarily
indicate how a person will react in specific circumstances. For
example, some people might have a natural preference for I (introversion)
but have developed their E (extroversion) so that they can be
more effective in a business setting. Test results might indicate
such people are introverts even though most business associates
would classify them as extroverts.
MBTI
Results for Software Developers
Two
large studies have found that the most common personality type
for software developers is ISTJ (introversion, sensing, thinking,
judging), a type that tends to be serious and quiet, practical,
orderly, logical, and successful through concentration and thoroughness.
ISTJs comprise 25-40 percent of software developers.
Programmers
are indeed introverts. One-half to two-thirds of the software
development population is introverted compared to about one-quarter
of the general population. One reason the majority of software
developers are Is might be that more Is pursue higher
education and programmers are more educated than average. About
60 percent of software developers have attained at least a bachelor's
degree, compared to about 25 percent of the general population.
The
S/N (sensing/intuition) and T/F (thinking/feeling)
attributes are particularly interesting because they describe
an individual's decision-making style. Eighty to ninety percent
of software developers are Ts, compared to about 50 percent
of the general population. Compared to the average, Ts
are more logical, analytical, scientific, dispassionate, cold,
impersonal, concerned with matters of truth, and unconcerned with
people's feelings.
Programmers
are approximately evenly split between Ss and Ns,
and the difference between the two will be immediately recognizable
to most software developers. Ss are methodical, live in
the world of what can be accomplished now; are precise, concrete,
and practical; like to specialize; and like to develop a single
idea in depth rather than several ideas at once. Ns are
inventive, live in the world of possibility and theories, like
to generalize, and like to explore many alternative ideas. An
example of an S is an expert programmer who is intimately
acquainted with every detail of a specific programming language
or technology. An example of an N is a designer who considers
wide-ranging possibilities and shrugs off low-level technical
issues as "implementation details." Ss sometimes
aggravate Ns because Ss go deep into technical details
before Ns feel the breadth has been adequately explored. Ns
sometimes aggravate Ss because Ns jump from one
design idea to the next before Ss feel they have explored
any particular technical area in sufficient depth.