Thursday, February 9, 2012

Hiring the right people

It's always been the greatest challenge to find the right people for any team I've worked on building.  It seems that the hardest part of the process is finding the right fit.  You can have extremely intelligent and talented people and still not have the "right" people.

Today I primarily hire database and ETL developers for Data Warehouse related teams with both development and support focuses.  I do not have any magic bullet for how to find the perfect fit for each position I fill.  Right now I have four different teams with different focuses, one in the US, two on opposite sides of India, and one in the Philippines.  Each of them has it's own set of challenges, but in all of them, there are always three primary skill sets that seem to matter the most.

You can talk to the candidates and try to feel out their technical abilities and see how well they communicate and those two things are very important factors in who you should hire for your teams.  However, once you get past the more obvious requirement that anyone you hire have the correct technical skills and can communicate effectively, what other criteria should you use to figure out who the right person is for any specific role?

One other major item is resourcefulness.  But how can you measure resourcefulness when you are interviewing potential job candidates?

I was reading Paul Graham's blog and one of his recent papers discussed resourcefulness and how resourcefulness seemed to relate to how easy or hard it was to talk to people.  If a person is difficult to talk to, they had a tendency to be less successful and often needed more assistance.

I thought about the last few people I had hired who had not worked out in the end; Mr. Graham's observation turned out to be true in every one of those cases.  Each of them needed more help to get things done than I was able to provide and because of this they were not able to be successful on my team.  You can read Mr. Graham's blog post "A Word To The Resourceful" here:  http://paulgraham.com/word.html and follow him on Twitter @paulg.

When it comes to outsourced teams which are my specialty, it's even more important that my team members are resourceful than if they worked with me face to face every day.  If I am working right next to someone, it's a lot more obvious if they are lost or need a little help.  When the team member is on the opposite side of the world and sometimes even works a different shift than you do, it's very difficult to help a person who lacks resourcefulness, they will simply fail in short order.

The real problem comes down to what I call "hand holding".  Can you hand over a development project and be able to count on your team to actually get the job done regardless of whatever problems might arise?  If your people are not resourceful, the answer will be no regardless of how good at actually writing code the team member might be.  People who are not resourceful need lots of "hand holding" to help them get all the little details figured out before they can really work on a project.

The problem is that in each project, up to 70% of the actual work involved in the project is in figuring out these little details!

So how can you ensure that you hire people that won't require you to do a lot of "hand holding"?  You have to ask questions that show you how resourceful they are.  I mentioned earlier that there isn't any magic bullet, and unfortunately there aren't any magic interview questions to figure this out.  You have to feel it out with each individual in a different way.

Compounding the difficulty, do not forget that culturally people are different meaning that what might tell you something for a US worker won't necessarily be the same as someone from India, Romania, or any other country.  Even within the same country people can be quite dramatically different culturally.

Resourcefulness is an extremely important trait in developers, particularly outsourced "staff augmentation" workers.  You don't sit next to these people to help ensure they have what they need for a project, nor do you have an easy way to see that they are working effectively on your projects.  You need those workers to be resourceful enough to figure out solutions to problems without waiting for your input.

For developers, I would argue that resourcefulness is more important that programming skills.  When hiring for development teams, always ensure that you look just as much at soft skills as you do technical skills.  If you hire team members who are excellent programmers it will do you absolutely no good if they can't communicate effectively to you or your business users, nor will it help if they couldn't figure out how to get past a basic connectivity issue when they were trying to connect to your companies network.

You need soft skills in your workers just as much as you need technical skills.  Those soft skills sometimes do not get a lot of focus during a job interview.  I recommend that you put even more focus on determining whether a candidate is resourceful or not than you do on their technical skills.

Please tell me your thoughts.  I look forward to any comments.


No comments:

Post a Comment