Introduction
Hiring top talent starts with establishing clear objectives for your team, it follows with creating a hiring profile, and finally, it requires that you be maniacal about hiring only those that match the profile. The hardest part about the process is following the last step. It’s very difficult to stick to your hiring profile when you’re understaffed and facing a deadline but it must be done.
Establish Clear Objectives for the Team
Never assume that an arbitrary collection of software developers makes a team, and that all such teams can achieve whatever objectives are placed before them. This is simply not true. The software development profession is like the legal and medical professions in that although members of each profession may share some basic knowledge and skills, the breadth and depth of knowledge and skills required to practice all forms of law and medicine far exceeds the capacity of any individual. Consequently, those professions, like software development, are segmented into specialties.
In assembling the team, you must know what you want that team to accomplish before you select its members. If the team’s objective will be to design and implement a new operating system, then you’ll need to select software developers that have the requisite knowledge and skills. On the other hand, if the objective of the team will be to develop a financial analysis tool for stock brokers, the knowledge and skills they need will be far different from those required by the operating system development team. Remember, software developers are not interchangeable parts!
Create A Hiring Profile
Once you define what you want the team to do, the next step is to create a hiring profile, that consists of 4 categories, that will you will use as a guide during the hiring the process. The categories are culture, personality, track record, and knowledge, skills, and experience.
Culture
Let’s say that in your present culture, people have fallen into the habit of blaming others for their failures. You want to change the culture to one where people accept responsibility for their failures. You recognize that this particular aspect of your culture was created by the departing technical lead whose replacement you are hiring. That person would publicly humiliate people by drawing attention to their mistakes and failures. His subordinates found that by blaming someone else, they could avoid public embarrassment and humiliation, i.e., they found a way to shy away from the pain.
During interviews, you meet with two candidates that appear to fit. But, since changing this aspect of your culture is very important, you ask probing questions to determine how each would handle mistakes and failures. You find that one of the candidates would most likely embarrass his subordinates and the other would encourage them to openly discuss their failures and to look for ways to prevent them from happening again. All else equal, which candidate would you choose?
Personality
A person who is laid back and carefree may not be very concerned about getting a release out on time. Another person who dislikes change and who passively resists it may not look for ways to pull in the date on a slipping project.
The behaviors associated with personality are deeply rooted. They are connected to an internal belief system that often reaches back to early childhood. Their connection with deeply rooted beliefs makes such behaviors difficult, if not impossible, to change. Other behaviors aren’t as deeply rooted. They’re more like habits. Not necessarily easy to change, but possible. In either case, if you knew, before hiring a person, that they possessed certain personality qualities that were at odds with your goal to create a high performance team, would you hire that person?
If you hire someone who exhibits personality traits that are at odds with the kind of traits characteristic of a high performance team member, you will most certainly end up firing that person someday. Or, you’ll spend a tremendous amount of time counseling and couching that person attempting to change those behaviors, i.e., attempting to close the gap between what they are and what you need them to be. Is that the best use of your time? If you answered yes, you might have chosen the wrong career.
In my experience, top software development talent consistently possesses certain personality attributes, including:
Self-starter/Initiator
They are people that need little if any coaxing to take action. They see what needs to be done and they do it.
Risk taker
They are the risk takers not the risk averse. This behavior spills over into their personal lives. They engage in “high risk” activities like mountain biking, rock climbing, skydiving, and the like.
Unhappy with the status quo/Change driver
They are always looking to improve the way things are done and they are always looking to improve themselves. Beyond looking, they are effective at affecting change. They have track records of introducing new processes or changing ones that don’t work. They are avid readers, have mentors, and take training classes.
Ambitious
They are always seeking more responsibility and opportunities for growth. They won’t be held back. They are race horses not mules.
Leader
When the going gets tough, they rise up and lead the way. They’re the ones that people follow regardless of their formal position within the corporate hierarchy.
Track record
How do you figure out if the person whose resume you’re looking at has what you’re looking for? Look for the resume that is achievement oriented. In other words, look for the resume that identifies the successful application of knowledge, skills, and experience versus boasting about possessing certain knowledge, skills, and experience.
Top software development talent will list things like, “Designed and implemented a software product that sold over 4 million copies generating over $20M in revenue” on their resume. On the other hand, a non-results oriented person may only list items on their resume like, “Attended Java training course.”
Knowledge, skills, and experience needed for success
There are software developers that specialize in the development of standalone applications for certain professions like medical or legal. Others specialize in the development of software for banking and finance. Some develop real-time control system software. Still others have built careers developing client-server middleware used by others to build sophisticated client-server applications for a variety of professions and industries. Each has unique knowledge, skills, and experience that don’t easily, if at all, transfer from one kind of software development project to another.
It is important to specify what knowledge, skills, and experience a candidate must possess versus those that are strongly desired but that you can live without, at least on a temporary basis. If they are things that you can live without permanently, don’t put them on the list. For the temporary ones, you’ll have to figure out how long and how much effort it will take you to help that person fill those holes. If the gap between what they have and what you need is narrow then it’s probably a reasonable risk to hire that person, but a risk nonetheless. A wide gap means longer time to fill and more effort on your part. When you hire them, and assuming they accept, identify the gaps that you see. Work with them to develop a detailed plan to close those gaps. Don’t ignore them. What might be a narrow gap today could easily become a wide one if left unchecked.
Hiring
You have clear objectives for the team; you’ve established a hiring profile and found candidates that appear to match your profile on paper. How do you figure out whether or not they actually fit the profile? Here are some guidelines to follow that will help you hire the top talent.
Prepare Your Questions Ahead of Time
Be prepared. Very few interviewers prepare for an interview. More often than not, they read a candidate’s resume for the first time either shortly before or during the interview! Being prepared does two things: it helps you to accurately determine whether or not a candidate fits the profile and it lets the candidate know that they are a serious contender for the position. Regarding the latter point, have you ever been interviewed by someone who was unprepared? I’m most certain that you have. How did that make you feel? Don’t let your candidates feel that way.
Their Resume is Your Guide
It’s easy for an interview to get off course. Spending too much time talking about you, overselling the company or position, and talking about things like hobbies, personal interests, and the like are common ways that interviews wander from their primary purpose. Remember, your objective is to determine whether or not the candidate fits your profile.
The best way to stay on course is to use their resume as your guide. Write your questions directly on it. Review your questions before the interview. Make sure that they are sufficient in terms of breadth and depth. In other words, your questions must probe along the 4 dimensions of the hiring profile to a depth that will allow you to accurately measure fit.
Trust Your Gut
Interviewing experts will tell you that you should not hire someone based on just a gut feeling. But, you should not ignore or diminish the importance of such a feeling. In particular, there are two gut feelings that you should pay close attention to: 1) Something just doesn’t seem right about this guy, and 2) They’re too good to be true.
Something just doesn’t seem right about this guy
Have you ever interviewed someone and felt that something just wasn’t quite right about them? Worse, you can’t explain why you feel that way about them? Don’t ignore that feeling just because you can’t explain it.
They’re too good to be true
Then, there’s the person who has always done everything right. You ask them if they have any weaknesses and they say no. Their resume seems to have been tailor made for the position you’re hiring for. You start wondering if this person is real. If you suspect that someone is too good to be true they probably are. Be suspicious.
Conclusion
Establish clear objectives for your team, create a hiring profile, and hire only those that match the profile. Although it’s tempting, resist the urge to fill an opening in your organizational chart for the sake of filling an opening. If you follow this simple process you will hire top talent but perhaps more important you will be building a high performance team.