RE: Best personality traits of developers

by Sam Griffith

Today while reading on the net I came across this blog posting: Personality_Traits_of_the_Best_Software_Developers and I had to comment.

While I think all those traits mention are good and do tend to yield developers who have attention to detail, control their distractions, etc., it is my opinion they do not necessarily equal the "best" developers! They are however some of the kind you want, but not necessarily the only kind of developer you need!

I have worked with many developers over the years who've come up with and coded great solutions to very complex problems, but they were not all detail oriented people. They did have bugs, their code sometimes needed re-factoring, etc. but quite often their ideas and solutions tended to be better than others; more out of the box. That made them "great". We had plenty of other developers; we'll call them "BTA - better than average"; all exhibiting the traits you say are "best" but they did not and probably would not have come up with solutions like the "great" developers. For example, the "great" developers tended to be more widely read in software engineering than any other team member, thus contributing a pointer to a solution or algorithm that no one else knew about. The "great" developers contributed things that the traits you mention don't and can't account for!

Now before you write me off, lets consider other great people in history that changed things but whom had some issues like: personal lives in shambles or a least distressed in areas, personal appearance was less than ideal (putting it mildly), little savings or planning for the future, not being able get through life without other support systems to cover and deal with what they were not good at! It is generally reported that Thomas Edison, Einstein and Richard Greenblatt all had an issue with personal hygiene and clothing that was constantly disheveled. Einstein was turned down and actively undermined over and over again when trying to get a position teaching in a university, this, even though he had a teaching degree and shortly later was granted his PhD in Physics and along with having written Noble Prize worthy papers. Why? He was considered brash and not accepted into the establishment.

Great People with Issues
1) Einstein
2) Vincent van Gogh
3) Robert Oppenheimer
4) Richard Stallman
5) Pablo Picasso
6) Edward Teller
7) John Draper aka Captain Crunch
8) many a UNIX hacker
9) Nikola Tesla
10) Richard Greenblatt
11) von Neumann
12) Salvador Dali
13) Thomas Edison

Many of these people would be categorized today as ADD, ADHD or mildly mentally ill! But they each helped change the world!

So should we write off people or developers who are disorganized, socially awkward, don't plan ahead, are sloppy in other parts of there lives, etc? I think if we do it's our loss! And I think it's great one at that!

Einstein, Thomas Edison, Von Newmann, Richard Greenblatt and other great UNIX hackers wouldn't be considered great according to the criteria espoused, but yet they were! The effect of the contributions they've made is immeasurable. How would we account for that loss? Could we?

The thing to remember is that many people considered as "great" have let other areas of their lives go to pot whilst they put all they have into what they are doing! Excuse? No, just a fact!

I think the real question is "How do you recognize that greatness and help it along?" Do you do that by allowing those people to focus on the passion(s) they have by experimenting, making mistakes and repeating, and then come back to clean-up, re-factor, re-organize, etc. later? In our world of open-source development and discussions through blogs, forums, etc. we want to be careful not to flame the messenger or inventor. This includes in corporate development departments as well where managers and team leads have to weight these kinds of issues as well.

Most of all, you can't judge a book by it's cover! Sometimes you might even find that a person who delivers only 10% of the system might be your most crucial person, because it's not the amount they deliver but what they deliver! And sometimes that isn't code at all, but leadership, insulation from political ho-ha, brilliant ideas or maybe just a good pep-talk at the right times. Your "best" team member might be your least recognized... Think about that... and then find someone to view in a different way!

Interesting links:
New Hacker's Dictionary
A Portrait of J. Random Hacker
Any Wikipedia article about the above mentioned people

Till next time..

Sam Griffith Jr

14 Comments

Matthew Sporleder
2006-08-27 20:46:56
It's more like:
How to identify the best outsourcable corporate robots.


Of course, working on boring company software isn't going to get you superstars. They're all more interested in doing interesting things. :)

Jesse Kuhnert
2006-08-28 08:49:28
I think you have misunderstood the traits of the people you listed above. There personal lives may have been a shambles, but I highly doubt that the work/passion that drove them allowed for very much disarray in their actual work.


Social/personal issues were probably written off as mild distractions/annoyances.

Sam Griffith Jr.
2006-08-28 11:05:49
Jesse,


First off, thanks for reading. You are correct. I agree with what you've said. The original article lists 'personal lives being in order' as one of the things that makes a "best" developer. I wanted to show that many people who have personal lives in disarray have work lives that are brillant...

pjm
2006-08-28 16:25:15
Yeah to the central thesis, but *man*, please hit a spell checker and check those names. OK, stow the spelling errors (not even I am pathetic enough to list those), but


3) Robert Opeenheimer [ Oppenheimer ]
11) Von Newmann [von Neumann]


Cheers,
Paul

David Douglass
2006-08-28 19:49:16
If you're as bright as the people in your list you can get away with being a slob, body order, looking like a wreck, etc. But most of aren't that smart. Average people have to pay attention to the little things; it's just part of the game.
Sam Griffith Jr.
2006-08-28 20:57:22
Paul,


I fixed the spelling errors as well as the names and updated this post. Thanks. Guess I shouldn't post so late at night! And when I do I'll remember to use the spell checker. :-)

Sam Griffith Jr.
2006-08-28 21:23:49
David,


I agree that average people need to watch the little things, but that doesn't make them the "best". As defined in the article it makes them stable, detail oriented, dependable, non-smelly, rule following and conform-ant to common beliefs. Those traits are good and society needs most people to be that way, but the people who are "great" often turn out to not conform to those "ideal" behaviors.


As for the for the idea you pose about the people in my list being given slack because they are so bright. They weren't in most cases. Einstein couldn't get a good job so he ended up at the patent office, several of the artists were not considered any good till after they were very old or dead and UNIX hackers still carry the stigma of their historical image.


Given that, I wonder how many people spend time concerning themselves with those little things instead of doing the things that might move them to the "great" category. I don't think those people listed were that far removed from the average person. I think they made conscious decisions to limit what they'd put their time into and they used the other time to go from "good/average" to "great". In some cases such as Thomas Edison, it's known that he did.

Henrik
2006-08-29 19:48:30
Always wanted to come up with a rant like that, hugs :)


Both types of people are important though, as they are suited for different sets of responsibilities.

DS
2006-08-31 11:52:46
Gee! You mean all that time I spend in my parents basement with my PS3 and my bong isn't wasted!


Seriously, we had a guy like that where I work. Very mis-understood, perpetual dress-code violations, you know the type. But every now and then he'd come up with this beautiful dot-dot moment and really give a project the push it needed to succeed. Never heard what happened to him after he left here.

Rob Nichols
2006-09-01 01:29:11
I think you've missed a fundamental point. That is the error that many team builders make in searching for an ideal person. The whole tenet of the quest for the best developer implies that a team builder should concentrate on finding such people. In fact, the best teams are those built up of a range of skills and personalities. Teams built up of people with very similar personality traits rarely achieve the goal of any team - to become greater than the sum of their parts.


The most obvious examples of teams of similar people that I have seen are those built by someone who believes their own skills are ideal, and who then goes about recruiting people who most closely resemble clones of the recruiter. These teams quickly fail. They get stuck on a problem, because they all address the problem in the same way, or they fail to get things done because all the team are off brainstorming all the time.


In fact your examples of great people can be used to demonstrate this point. Would you really want to work in a team of half a dozen van Goghs? The essential point is that an unusual character can add a wider skill set to a team, but only if there are already present the range of skills needed within the team to take the new ideas and techniques and hone them into a working solution.


So don't search for the ideal developer. Instead, search for the developer who best addresses the weaknesses of the rest of the team.

Sam Griffith Jr.
2006-09-01 02:37:15
Rob,


I don't think I have missed the fundamental point of the original post, which was that the "Best" developers have X traits. (The traits being detailed in the article) I reality you and I are agreeing completely. From my posts second paragraph: "They are however some of the kind you want, but not necessarily the only kind of developer you need!". This was my gentle way of saying you need to consider that you need "some" people such as those detailed in the other article, but that's not all you "need"... you will need others who will not fit those traits described as best. I was not saying at all that you want is a team of van Goghs, but that you might need one or some of them on your team.


I then go on to mention people who didn't fit the specs from the original article. I make the point that those people who I use as examples were people who truly changed things. The implication being that when you look at people, you need to be very careful of what your looking at because, like all the people listed, you may miss something great.


To your point that you can use my post to demonstrate your point, your right, because we're saying the same thing. Add to that the fact that you also need to be careful who you pass over because they might be the very person who could changes the life of the project.


Thanks for posting and reading...


Sam



George Jempty
2006-09-04 04:50:17
my manager likens me to Monk ;)
rme
2006-09-07 03:31:10
I agree with your article. It takes many different character types to produce software. Passion makes it and Apathy will destroy it.
Austine Abah
2007-07-25 00:51:02
Dude you need to read Kant's "Critique of pure reason". It was argued in the past that knowledge had to be by experience, but Kant pointed out that somethings we will never be able to understand by our experience, this is how ideas are formed. There are two types of reasoning, and they are two types of humans that reason like this. It is "Analytic and Synthetic reasoning".


The Analytic reasoner is the one that thinks in process of one step to another, they are generally the product of our system enhanced by education. They are your typical A+ student, that people understand to be right, well that is until they run into a complex problem. You could have great analytic thinkers in software engineering, these guys are great at attention to details, very organized and are good in following instructions.


A synthetic thinker is one that is generally thinking outside the box, or sees an object without a particular process, or a big picture. These ones lack attention to details but because they can see the big picture they can come up with the most efficient solutions. This is where the genius's are embedded.


The analyzer cannot come with his own idea, while a synthesizer finds it hard following other people's idea.


Society needs this two types of people, however since the system is filled with all these laws that people must adhere to, there has been less of this synthetic types. So even when you come across a synthesizer they might seem so offish because majority is not used to people like this.