Traits of a great developer
"How do you identify a good developer?" your HR Manager may ask. "Which technical tests should we do to weed out the good from the bad?" - a question I'm asked all the time. Truth is, whilst you cannot rule out the effectiveness of a good technical Q&A to assess a developer's skill - there are some key common characteristics that make up a great developer's personality - ones which I feel are not identifiable by technical assessments, psychometric tests and academic transcripts. In actual fact, in my experience, those who do not possess these behaviors are almost always not the next dev rockstars that your team so desperately needs.
1. Subscribes to technology blogs / Follows great thought leaders on social media
Ok, so who doesn't follow Jeff Atwood? Scott Hanselman? Joel Spolsky? Andy Hunt (/\ndy)? The list goes on - but a good developer will know of these guys - and will be subscribed to at least a couple.
2. Develops in their spare time
Someone who develops in their spare time does so for two good reasons:
1) No problem can't be solved without an app! (by App, I don't mean mobile/web - this could be anything)
2) Who gets to play with the bleeding edge technology at work? Not often do you get to experiment with a new framework / language / etc when there's real-life operational needs to attend to during the day.
3) The brain doesn't stop! You can't shut a great developer's mind off just because the clock has struck 5pm.
3. Arrives at work early or develops late at night
This just speaks purely to passion and excitement by the thought of writing code. If you enjoy developing, you'll be up early, ready to implement the idea you had last night. That being said - loads of developers love their sleep too - but those guys/girls will be coding (not working!) all night experimenting with different ideas. What I'm getting at here, is the passion and enthusiasm that a great developer has for code - its not something that just switches on and off during working hours. In-fact, the best ideas are usually formed when not at a desk!
4. Knows that they don't know it all
The worst developers in my experience, are those who rate themselves highly. They know all there is to know. In an interview - they'll be overly keen to show just how much they know about all sorts of different technologies. The best guys are humble. They ask questions. Not just from those senior to them. They ask the junior guys for advice. They're inclusive in their development approach. Modest in their opinions of themselves but quietly confident in their ability to deliver. Be weary of the guys who know it all. Truth be told? No-one is keeping up with all the latest technology. As Jeff Atwood admits: "I take a "Just In Time" attitude to learning new technology. I can't possibly learn everything. But I do try to learn enough to know what the new thing is, and when I might need it."
So - do your tech checks. Go through the HR process - make sure your candidate isn't a psychopath. But more importantly - look for the behaviours that are so common in all great developers. It doesn't matter what language or platform you're looking for - the characteristics are common and if your developer is lacking any of these - I'd ask yourself a serious question as to why. Any great developer would agree!