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