Programming for Extroverts
I’m a programmer. Apparently, I’m also an extrovert.
Its a common stereotype that programmers are introverted, nerdy, sci-fi fans. If we’re not pwning noobs on World of Warcraft then we’re in Games Workshop guffawing over plot holes in the new Star Wars movie, right? Of course this isn’t (entirely) true and I can tell you first hand that programmers are as diverse a group of people as you could ever hope to meet.
Despite attempts to avoid being stereotyped it’s still difficult to deny the evidence that suggests introverts are significantly more abundant than extroverts in the software industry. In case you don’t know what introversion and extroversion mean, let me first give you a quick 101 (If you already know then you can skip the next section).
Myers-Briggs 101
The concepts of introversion and extroversion were popularised by Carl Jung’s book Psychological Types (1921) and later built on by Katharine Cook Briggs and her daughter Isabel Briggs Myers who created the Myers-Briggs Type indicator (MBTI) which is now used by 89 of the Fortune 100 companies.
The MBTI is a questionnaire that assigns you one of sixteen ‘personality types’ which supposedly provide insight into your psychological makeup and why you do all the crazy stuff you do. Each personality type is a result of which way you lean in the following four dichotomies (you can read what they all mean here):
- Introversion and Extroversion
- Sensing and Intuition
- Thinking and Feeling
- Judging and Perceiving
So lets say your results show that you are more introverted than extroverted, more sensing than intuitive, more thinking than feeling, and more judging than perceiving; that would make you a great big ISTJ.
Of these four dichotomies introversion and extroversion are the most widely known and probably the easiest to grasp. An introvert is drained by social interaction and may need time alone to ‘recharge’, it has nothing to do with how good their social skills are, it is only a commentary on how socialising affects their energy levels. In contrast, extroverts are most energised when they’re bouncing off others. This doesn’t mean they have good social skills or that they just love everyone, they might be just as capable of finding people annoying as someone who was introverted, but when they’re in teams of people they get along with, they thrive.
Introvert > Extrovert
So back to my point: it looks like there are significantly more introverts than extroverts in the software industry.
One study[1] of 110 software engineers found that an ISTP personality type was the most common with the following distribution among the four dichotomies:
Introvert 58%, Extrovert 42%
Sensing 59%, Intuitive 41%
Thinking 60%, Feeling 40%
Judging 48%, Perceiving 52%
Perhaps the skeptical among you are thinking that introverts are simply more common than extroverts? The Myers-Briggs folks themselves estimated that 50.7% of the population are introverts and 49.3% are extroverts based on test results from 1972–2002. That should be taken into account when analysing this data but it is not enough to explain the discrepancy.
Another study[2] tested the Myers-Briggs personality types of 100 software engineers (some professional, some still studying) and found ISTJ to be the most common personality type with a similar distribution:
Introvert 57%, Extrovert 43%,
Sensing 67%, Intuitive 33%,
Thinking 81%, Feeling 19%,
Judging 58%, Perceiving 42%
And the Results Are In…
My Myers-Briggs personality type is ENFP.
According to this study, I am therefore the antithesis of the average programmer. In each of the four ‘dichotomies’ I score differently to the statistical ‘average’ programmer. When I first learned this I must admit I betrayed a moment of doubt, perhaps I’d picked the wrong career? Maybe I didn’t have as much potential as other programmers? But then I remembered how much I love programming and that concern fluttered away.
It did make me think though, what is my role in a software engineering team? How do I fit in? I have traits that others don’t, and vice versa. With that must also come different strengths and weaknesses. If you want a productive team you need to understand the different strengths and weaknesses of the individuals in the team so that you can structure it in a way that will bring out the best in everyone.
Why this Whole Introversion-Extroversion Thing Matters
As humans, collaboration is our greatest strength but also one of our most challenging problems. It allows us to apply the diverse skill sets of many individuals to a common goal, skill sets that could not possibly be encapsulated within a single individual. We are all specialists that can only do so much by ourselves, alone in our niches. But when we work together we can make great things happen, but creating the conditions that allow successful collaboration is difficult.
Some people have had a good crack at solving the ‘problem’ of effective collaboration. I’m amazed at how GitHub has formalised the process of remote collaboration on software projects in such a cool way. It’s value is immense and I believe the concepts such as pull requests can and should be applied to different industries.
When you get people to collaborate well amazing things happen but its not easy. The reason we have different skill sets is because we are different people, and differences can cause misunderstandings, friction and ultimately ineffective collaboration. Social phenomena such as group-think are examples of how collaboration can actually be harmful if done in a poor environment.
If you’re an extroverted programmer, then you might notice that you’re slightly outnumbered by your introverted peers, but you should find that empowering. Explore how you’re extroversion can benefit the team; there are things that you find energising that others find draining. If there’s ever a task that other people find difficult but you find easy because of your natural inclinations, then you can make yourself an asset by taking on that task, because you can handle it with more grace and efficiency than others, and likewise they will thrive on other things that you might not enjoy so much. A good football team is structured in a way that accentuates the talents of the individual players and allows them to bounce off each other. The same should be true of any team.
One man’s tedious is another mans awesome. If you love writing documents, write-em, because not everyone else does. If you love hustling information from other teams, hustle away, because other people might hesitate to do it themselves even though they need that information.
I think conversations about extroverted programmers are worth having. In software engineering agile methodologies are becoming more and more popular and to work well these methodologies need people who get off on constant communication and feedback loops, working closely with clients, 3rd party vendors and end users to make sure they are delivering the right thing: value. Both extroverts and introverts have their place in this story, exploring our different strengths and weaknesses will help us to collaborate better so that we can create better software.
References
Raza, A.; Capretz, L. F.; Zaka-ul-Mustafa (2015) Personality Profiles of Software Engineers and Their Software Quality Preferences. arXiv preprint arXiv:1511.04411.
Capretz, L. F. (2003) Personality Types in Software Engineering. International Journal of Human-Computer Studies, 58, p. 207–214.
Originally published at programmingforextroverts.com on April 7, 2016.