“Variety is the spice of life”
Did you see a software team with members that are
- always stressed and full of fear to fail or completely indifferent to end results?
- totally agree with each other and satisfied with their product, but very far from harsh reality?
- competing and fighting for the true solution, but cannot achieve common goals?
- always inventing something interesting, but cannot focus on work and deliver software?
- overly disciplined, planning everything, but deliver mediocre boring results without any spark of imagination?
- having excellent communication, rapport and environment, but spend most of the time talking than working?
- sitting in separate cubicles without talking, barely understanding what others are doing?
Can these teams be successful? What is the root cause of their problems? How these problems could be prevented?
One of the most interesting things about humans is their personality. We are different in behavior, reactions and feelings in the similar situations. These wonderful personality traits make our life refreshing and sometimes totally unpredictable. Do they matter in software development, apparently logical and rational activity? I believe that people are the most important factor in the software development and they determine success. A programmer’s personality affects behavior and therefore it must have significant impact on the work itself.
Empirical research shows five broad dimensions of personality:
- Openness – appreciation for art, emotion, adventure, unusual ideas, imagination, curiosity, and variety of experience.
- Conscientiousness – a tendency to show self-discipline, act dutifully, and aim for achievement; planned rather than spontaneous behavior.
- Extroversion – energy, positive emotions, and the tendency to seek stimulation and the company of others.
- Agreeableness – a tendency to be compassionate and cooperative rather than suspicious and antagonistic towards others.
- Neuroticism – a tendency to experience unpleasant emotions easily, such as anger, anxiety, depression, or vulnerability; sometimes called emotional instability.
What are the best personal traits for the programmer? Before answering this question, I want to mention research of rudimentary personality traits in wild animals. Small birds, great tits, have personality ranging from highly exploratory to more cautious one. Scientists found that the both personality types are optimal, but under different conditions. When resources were scarce it paid the birds to dispense further. However, when resources are abundant more cautious birds were more likely to survive. Morale is that our evolution preserved different personalities for the good reason. They help us to survive and advance under various unpredictable conditions. They made overall population resilient to changing environment, threats and challenges.
Software teams need diversity not only in skills, experience and knowledge. They need the optimal balance of personalities to effectively build software, especially in our rapidly changing technological, business and social worlds.
Five Big Personality Traits
Intellectual curiosity – open to new experience, new ways of doing things.
High – Explorer
Positive: imagination, creativity, flexibility, innovative, open-minded
Negative: over-complication, ambiguous, distracted, reinventing the wheel, seeks complexity
Optimal contribution: new ideas / creative and innovative solutions
Professions: entrepreneurs, architects, change agents, artists, theoretical scientists
Low – Preserver
Positive: vigilance, practical, concrete, pragmatic
Negative: narrow minded, conservative, conforming
Optimal contribution: pragmatic implementation, attention to details, stability
Professions: financial managers, performers, project managers, applied scientists, police, sales
In the middle is Moderate – can explore novel solutions with interest; on other hand can focus on familiar for extended period of time.
Degree to which we push toward goals at work. Control, regularity, direct impulses.
High – Focused
Positive: organized, disciplined, persistent, industrious, dependable, plans everything
Negative: perfectionist, workaholic, boring, formalist, craving for achievements
Optimal contribution: discipline, reliable results, organized and planned work
Professions: high achievers, leaders, executives
Low – Flexible
Positive: fun, colorful, playful, imaginative, open ended, creative, relaxed, multi-tasking
Negative: spontaneous, impulsive, unreliable, easily distracted
Optimal contribution: fun, improved morale, imagination spark, unexpected insights
Professions: researchers, detectives, consultants
In the middle, Balanced – can move from focus to laxity and from production to research
Degree to which person can tolerate sensory stimulation from people and situations. Engagement with external world
High – Extravert
Positive: enthusiastic, action-oriented, sociable, outgoing, trust others
Negative: need attention, risk prone, low energy when alone
Optimal contribution: enthusiasm, communication, shared understanding, team aligning and bonding
Professions: sales, politics, arts
Low – Introvert
Positive: stoical, self-sufficient, independent, can work alone
Negative: reserved, retiring, deliberate, skeptical
Optimal contribution: independence, focus, ability to work alone without interruptions
Professions: production managers, natural scientists
On between two extremes, Ambivert – move comfortably from outgoing social situations to isolation of working alone
Degree to which we defer to others. Need for cooperation, social harmony
High – Adapter
Positive: friendly, helpful, cooperative, empathetic, tolerant, agreeable, accepting
Negative: conformity, lack of focus, over trust, lost sense of self
Optimal contribution: team play, cooperation, support, empathy, harmony
Professions: teachers, social workers, psychologists
Low – Challenger
Positive: objective, tough decisions, individuality, expressive, persistent
Negative: self-centered, suspicious, ruthless, hostile, rude, need for power
Optimal contribution: tough decisions, objective, independent and critical views, challenging status quo
Professions: advertisers, managers, military leadership, critics, soldiers
In the middle, Negotiator – able to move from leadership to followership as the situation demands
Degree to which person responds to stress. Emotional stability
High – Reactive
Positive: vigilance, responsive to threats, sensible, reactive, insecure
Negative: easily stressed, anxious, over emotional
Optimal contribution: sensitive, responsive attitude
Professions: social scientists, customer service.
Low – Resilient
Positive: calm, secure, self-satisfied, unflappable, resilient
Negative: unflappable, laid-back, impervious, indifferent
Optimal contribution: calm, confidence, optimism
Professions: air-traffic controllers, airline pilots, military snipers, finance managers, engineers
In the middle, Responsive – able to turn behavior from both extremes on what seems appropriate to the situation
- Scientists think that heredity and environment play equal role in possessing these traits.
- In young ages Agreeableness, Conscientiousness increases, Extraversion, Neuroticism and Openness decreases. But it doesn’t change much after 30. Therefore you could expect that the 20 years old unorganized and always arguing developer could become more disciplined and agreeable in the future, but don’t expect much changes from the 40-years old programming veteran.
Combinatorial Traits Matrix
Some traits are more beneficial for the software development: Explorer, Focused, Extravert. Other could also nicely compliment each other like Focused Preserver or Open-Minded Challenger. Some traits could be dangerous for the project and team like Nervous Preserver or Agressive Challenger.
|Creative spontaneous artist
(energy and direction)
|Soul of the team
|Quiet worker||Productive achiever
|Realistic critic||Industrious opponent||Debater||Opposition leader||Discordant employee||Adapter
|Nervous conservator||Stressed workaholic||Emotional artist||Alarmist||Neurotic avoider||Sharp companion||Aggressive competitor|
|Die Hard||Bureaucrat||Indifferent procrastinator||Optimistic supporter||Stoical soul||Easy helper||Skeptic|
Team Traits Checklist
A team could work on the green-field new development to maintenance projects. Therefore, proportion of optimal personalities will be different. Team leader could use this checklist to find out if his team is diverse enough.
|Desirable contribution||Question – Do you have…
|New ideas / creative and innovative solutions||creative people capable for coming up with new exciting ideas, innovations and creative solutions?||Explorer||new: 70/30
|Pragmatic implementation, attention to details, stability||down-to-earth people who will concentrate on implementation and mundane details instead of building castles in the sky?||Preserver|
|Discipline, reliable results, organized and planned work||disciplined productive people who will reliably deliver results in consistent and organized manner?||Focused||new: 60/40
|Fun, improved morale, imagination spark, unexpected insights||open-ended people, who could spark imagination, bring unexpected insights and make team feel better?||Flexible|
|Enthusiasm, communication, shared understanding, team aligning and bonding||enthusiastic outgoing people who establish great communication channels, create shared understanding and jell the team?||Extravert||new: 60/40
|Independence, focus, ability to work alone without interruptions||independent people, able to work alone without interruptions and distracting other people?||Introvert|
|Team play, cooperation, support, empathy, harmony||team players, who support and follow team decisions and readily cooperate with others||Adapter||new: 60/40
|Tough decisions, objective, independent and critical views, challenging status quo||objective people, who could challenge status quo, have independent opinion and can make tough decisions?||Challenger|
|Sensitive, responsive attitude||sensitive people who could warn and early respond to changing conditions and threats?||Reactive||new: 40/60
|Calm, confidence, optimism||calm confident people who could face challenges and crisis without breaking down?||Resilient|
How to make personality traits work?
1. Recognize that people have different personalities. We cannot do much to change them in an adult age (in many cases even after the birth).
2. Assemble a diverse team covering a range of personalities able to effectively respond in different situations. Don’t hope that you’ll find perfect match in one person – all of us have strength and weaknesses. And often you’ll need opposite personalities (I’m against hiring people with multi personal disorder to solve this problem :)). It is true, some people could conditionally switch behavior between opposite trait extremes, but most of us are comfortably operate only in the narrow range. Therefore, we should look for the optimal combination of traits in different people, which compliment each other.
Minimal requirements for the software team member:
- Respect to other people
- Can listen and accept other views
- Can learn and change
3. Create an open, honest and tolerant atmosphere and rules where people can resolve diverse opinions and approaches stemming from the different personalities. This is a quintessence and the most powerful tool of the diverse team – finding effective balance between different views for the particular people, project and situation: Stability vs. Innovation, Creativity, vs. Simplicity, Risk vs. Predictability, Cooperation vs. Individualism, Fun vs. Hard-work, Implementation vs. Research, etc. The best outcome is than people effectively resolve these views, make optimal decisions and become comfortable with them. And the team could leverage different personalities if:
- Overall team members experience and expertise matches the problem
- Everybody feels fair, satisfied with work and compensation
- The team is self-organized or at least has enough freedom to make independent decisions.
It is a problem than a software team doesn’t have balanced personalities and one of them becomes dominated. The team could be infected by one or few of the problems I’ve started the post with: constant stress, overconfidence, groupthink, building dream castles, fighting with each other, lost focus and many others. While we could blame our customers, ugly problems, bad managers or crappy technologies and tools for the problems, our personalities are often the very reason for the problems with our software projects.
A diverse, self organized and balanced team with right personalities is not panacea from all the problems, but it substantially increases chances for the overall success. And, don’t forget to appreciate the gift, the nature gave to us, to become great software creators – our personalities :).
And questions: What criteria your company / leaders are using to assemble software teams? Do they care about personalities?