Personality Type and Software Development

Ian Barnes
Department of Computer Science
The Australian National University
barnes@cs.anu.edu.au




©Ian Barnes 2002 Personality type and software development 1

Motivation

``Perl was created for someone like you, by someone like you, with the collaboration of many other someones like you.''

Larry Wall, in the Introduction to Learning Perl
by Randal L. Schwartz & Tom Christiansen




©Ian Barnes 2002 Personality type and software development 2

Outline

  1. The Myers Briggs model

  2. My ideas

  3. My proposed project




©Ian Barnes 2002 Personality type and software development 3

Personality Type




©Ian Barnes 2002 Personality type and software development 4

The Four Axes

Introvert <---> Extrovert

Sensate <---> iNtuitive

Thinker <---> Feeler

Judger <---> Perceiver

Note:




©Ian Barnes 2002 Personality type and software development 5

Extraversion <---> Introversion

E I
Expressive Reserved
Energised by prolonged contact with others drained
Drained by time alone energised
Speak before they think Think before they speak
External motivation Internal motivation
Process by talking Can't process while anyone is talking
Need contact Need time alone

If those needs are not met: E's become depressed, I's become anxious, irritable, confused.

  • Jung says these needs are basic

  • E's seem to be the majority

  • Our culture created by E's for E's

  • E's take pride in adjusting to others, fitting in




©Ian Barnes 2002 Personality type and software development 6

Sensing <---> Intuition

S N
Observant Imaginative
What is What can be
Body Head, mind
Quantitative Qualitative
Experiment Theory
Facts in the real world Theories and patterns
Attention to detail Bored by detail
Not interested in theory Only interested in underlying principle
Trees Forest



©Ian Barnes 2002 Personality type and software development 7

Thinking <---> Feeling

T F
Tough-minded Friendly
Objective Sympathetic
Practical Personal
Get the job done Feels like an insult
Being right Values and feelings

F's will compromise to avoid hurting someone.
Extreme T's lose friends over arguments about trivia.




©Ian Barnes 2002 Personality type and software development 8

Judging <---> Perceiving

J P
Scheduling Probing
  Looking around for alternatives
Work steadily Work in bursts of creativity
Love to make plans and stick to them Can't stand plans
Feel lost without them Feel trapped by them
Hate to change them More flexible
Like to have decisions made Prefer to put them off



©Ian Barnes 2002 Personality type and software development 9

The 16 types

ISTJ
Inspector
ISFJ
Protector
INFJ
Counsellor
INTJ
Mastermind
ISTP
Crafter
ISFP
Composer
INFP
Healer
INTP
Architect
ESTP
Promoter
ESFP
Performer
ENFP
Champion
ENTP
Inventor
ESTJ
Supervisor
ESFJ
Provider
ENFJ
Teacher
ENTJ
Field marshal



©Ian Barnes 2002 Personality type and software development 10

Kiersey's four temperaments

SP Artisans Ernest Hemingway
SJ Guardians George Washington
NF Idealists Ghandi
NT Rationals Einstein



©Ian Barnes 2002 Personality type and software development 11

Personality type and software

S <---> N

  • language choice

  • interface design

  • design vs. implementation

P <---> J

  • process

T <---> F

  • teamwork

  • correctness

I <---> E

  • work environment

  • contact with clients

  • interface design




©Ian Barnes 2002 Personality type and software development 12

Language Choice

S <---> N

Implications for education:




©Ian Barnes 2002 Personality type and software development 13

Software Engineering

P <---> J

Educational implications:




©Ian Barnes 2002 Personality type and software development 14

Quality & Teamwork

F <---> T

Educational implications:




©Ian Barnes 2002 Personality type and software development 15

Work Environment

I <---> E

  • Physical environment e.g. cubicles

  • Computer interface

  • Interaction with colleagues (meetings)

  • Interaction with clients

Educational implications:




©Ian Barnes 2002 Personality type and software development 16

My proposed project

  • Several programmers

  • Several programs

  • Change languages

  • Record time and defects

  • Record subjective impressions

  • Eliminate "talent" and difficulty of each task

  • Correlate with personality type




©Ian Barnes 2002 Personality type and software development 17

Call for volunteers

I'm looking for about a dozen volunteers who:

  • can program in at least two (preferably three or more) of the languages Eiffel, Perl, C and Haskell;

  • will donate two hours a week for several weeks;

  • will take the MBTI and let me know the results;

  • will write several programs while measuring their work (recording the time taken, size of code, and details of all defects found);

  • are prepared to reflect on their subjective experience of writing these programs;

  • are interested in finding out more about the way they work.

Interested? Contact me after this, or send email to barnes@cs.anu.edu.au




©Ian Barnes 2002 Personality type and software development 18