Today at work I started to do some performance reviews. As I prepared the review papers I started thinking about what makes me rate one developer higher than another.
So the question really is, what makes a good software developer? There are certainly many answers to this question and viewpoints will vary greatly. I don't think there is a definitive answer as the definition of "good" will change depending o what you are trying to achieve.
The following sections provide a high level summary of my thoughts on this very interesting topic.
Every so often we hold meetings to discuss the architecture and/or the best technical solution for a particular issue or functional item. During these meetings we discuss what the is the best solution and we move on to implement it without wasting too much time. I find very entertaining to see the developers argue to have their opinions or solution implemented. My own entertainment aside, these discussions are very important for the ultimate quality of our work because nobody knows everything, it is when we all sit around and workshop ideas that the best solutions are implemented.
In conclusion, I don't think that there is a definitive list for what makes good software developers as it varies depending on the circumstances. In broad terms, I find that attitude, openness to discussion and business knowledge are some of the skills that will give developers the edge they need to succeed in their careers.