Software development is an art form. Programmers are creating something that has never been produced before. This is not to say that other IT people are not creative, of course they are. There is a creative component to configuring a server or network, and I have nothing but the highest regard for hardware techs that consistently deliver quality results. But programming has unique dimensions to it that don’t exist with other IT roles.
When filling any IT position you should strive to hire the best people you can find, but with programmers it is critically important to seek out the best because great programmers are 5 to 10 times more productive than average programmers while only costing one and a half to twice as much. Why are great programmers so much more productive than average programmers? It's because great programmers can do things other programmers can't do, and because they create a lot fewer bugs. Great programmers are far less likely to get hung up on implementation problems that can delay a project, or worse, require you rework the design, or seek programming resources elsewhere to achieve the result you want. All of which adds delays. And great programmers create a lot less bugs. This is important because bugs are the second biggest cause of project delays, after poor design. Bugs can significantly increase the time required for QA.
When starting your search to fill a programming position the first question you need to ask is; what is the position and duties you are hiring for? Are you building a web app? A windows app? Are you looking for database proficiency? Are there specific programming language skills required? Answering these questions will help you narrow the field to those candidates that are suitable. Then review their CV to answer the following questions; how many years experience does this person have as a programmer? Less than 10 years may be a problem. How many major software development projects did they make a significant contribution to? If you are considering writing a web or mobile app, is this the type of experience the candidate has? For the rest of this discussion we will assume you are looking for a web / database application developer, but this advice applies to any type of software developer.
Next, evaluate their work. If you are a programmer yourself this is easier. Get them to show you the last major project they worked on and have them walk you through a representative example of the source code. If there was a database involved, get them to show you the structure and explain the table layouts. If you are not a programmer you need to talk to the project managers or the development managers of the last two or three major projects the candidate worked on. You want to get answers to the following questions: This person's skill level, productivity and bugs.
Skills: Every programming department has some stratification; great programmers at the top, average programmers in the middle and junior programmers at the bottom. You are looking for people who were the most senior programmers in their previous companies. Questions you might ask to get a sense of this; can you rate this programmer on a scale of 1 to 10? Would you consider this programmer to be in the top 10%, the bottom 10%, or somewhere in between?
Productivity: Did this programmer get all the difficult jobs that nobody else could do? Was this programmer writing a larger share of the application than everyone else?
Bugs: As mentioned above, bugs are the second most common cause of project delays. The only way to get a sense of how bug free their work will be, is to talk to people that have worked with them. Ask about the quality of code they wrote, were they known as someone who generated the most bugs? The fewest bugs?
In general, any web / database developer with 10 to 20 years experience and a portfolio of published software is worth considering. Programmers love taking about their work. Ask the candidate how they got into programming and what they like most about it. Every programmer has one or two pieces of software they are most proud of. Ask them to described theirs and explain why they are proud of it. During the course of this conversation you may discover additional information to help with your hiring decision.
Still having trouble getting quality applications for your IT job postings? Try poaching. You don't have to wait for talented candidates to come to you. You can be proactive and seek out qualified people that currently work for your competitors, or others. It's a competitive world out there and someone who may be perfect for the position you are trying to fill may not know that you are looking.
Final thoughts. When filling IT positions, whether it is for software, hardware, networking, security, support, etc., stretch the budget if you have to but seek out the very best people you can find. Experienced, senior individuals are far more valuable to your organization than junior people, and they are not that much more expensive.
Comments