We’ve often heard about the two fold (or five fold or ten fold) productivity increase between the top developer and the average developer. I’m sure we’ve often (ok, always) wished for a team full of these folks, but somehow we rarely get that. We tell ourselves that top developers are hard to find, they’re one-in-a-million, or that it’s just luck to hire them. There may be some truth to that, but there are certain characteristics that software experts share, and if you recognize these characteristics, you are more likely to either find them or cultivate them on your team.
First, and most obviously, top developers are among the most technically competent on your team. The have a wealth of tools in their toolbox, and the ability to use the right one for the right job. Both the breadth and the depth of their expertise are usually built over time and a variety of project challenges.
In addition to skills and experience, the best technicians tend to have great natural ability. Their brains just work in a way that makes designing programs easy. This has enabled them to build up their toolbox by allowing them to learn tools and techniques easily, and determine which ones are valuable and which are not.
A third characteristic is attention to detail. Whether it is in the requirements, design, coding, or testing phase, attention to detail will help ensure the work product is high quality. In their own personal growth, attention to detail is also important as it helps them develop new techniques and avoid old mistakes.
Fourth is the desire for continuous learning. Top software professionals are always “sharpening the saw”. They are learning new languages, processes, tools, or just simple techniques to build more good code faster. They are always up on the latest trends and eager to work with new technologies.
A final characteristic that is found in many of the most effective developers is teamwork. In most companies these days, interpersonal relationship building is a necessary skill. Most developers are not people oriented to start with, and those that can develop this essential skill have a huge benefit over those that do not.
Every top developer may not have all of these qualities, but be assured that they have most. Screening for, interviewing for, selecting, and nurturing these qualities will go a long way towards improving the effectiveness of your teams and your software development efforts.