I was just asking myself "Who are the best software developers I've worked with and what do they have in common?" and you know what they have in common? Nothing. They're all unique individuals with their own strengths and weaknesses and on balance their strengths outweigh their weaknesses by a higher margin than others.