When interviewing candidates I find that it’s easy to get wrapped up in looking at just what they can do technically, whether it’s problem solving on the whiteboard, completing a test on the computer, or just picking their brain about a technical topic. After all, they are interviewing for a technical position.
I find that I need to constantly remind myself to not just gauge their technically abilities but also to look heavily at their personality and how they will fit within the team.
I’d prefer to hire (and to work with) a developer that’s a little less talented or maybe has a little less experience but is humbled and eager to learn, rather than a developer who’s an all-star and more on the arrogant side. I’ve been around both types of developers and always find it much more pleasurable to work with the former. Plus, if a team can work well together and meshes well, then they are much more likely to make up for each other's short comings technically and ultimately come up with a great solution or product. And that’s all that matters, right?
I think there is a fine line to be had and it probably differs per team based upon needs and a team’s makeup but this is what I have found to work for the teams I have been on.
Smart developers can always learn new technologies but more than likely people won’t change their personalities except under drastic circumstances.