December 12, 2009

Hiring Your Friends

Filed under: Programming — pj @ 2:11 pm

Recently, a friend of mine asked me about hiring friends. I’ve read a lot of books about team management and I have a lot of hard won experience in this area. Posting this up in public may come back to haunt me, but I’ve decided to bumble on anyway and try to document some of my suggestions here in the hope that it will make the world a better place. A lot of the post below details what to do when things aren’t working out, but I don’t want you to think things are all “gloom and doom” – I love to work and I’ve had really good times at work. One of my very best friends today is a “success story” about hiring friends.

It’s All About the Money

Many surveys and studies of programmers suggest that job satisfaction is more important than money, but my experience is that you have to take care of money issues first, or you’ll keep coming back to them over and over. The ideal situation is:

  1. Everybody feels that they are being generously compensated (some of the generosity can be in deferred compensation - see #2)
  2. Any type of deferred compensation (sales commissions, stock options, profit sharing, etc.) is “icing on the cake” and not necessary for the person to pay their normal living expenses
  3. You don’t directly control the person’s paycheck (you both work for somebody else)

Not every situation will be ideal, but if you can’t handle requirements #1, and #2, maybe you should wait to hire until you can. There are people our there that will work hard without adequate compensation (either real or imagined), but your chances of hiring them are slim indeed.

3 Strikes and You’re Out

People that don’t perform well waste the time and energy of those that do. It’s really that simple. If you want the best possible performance from your team, each and every team member has to perform at their best: Team members with sub-par performance  have to “shape up or ship out” (even if they are friends). If you could just hire top performers to begin with, it seems like this would never be an issue, but hiring top talent every time is next to impossible and I’ve found that even top performers go through slumps. But you can identify people that don’t perform to expectations and it’s possible to pull people out of slumps. I’ll explain how I’ve done it below.

First, let’s define “best” a little more carefully: You’re the boss so you get to decide what is “best”. Maybe you want a shorted schedule (cutting features and quality to compensate). Maybe you want the best possible user-interface experience. Or maybe you want relatively bug-free code with a good, clean architecture. Whatever “best” is, it’s your choice and you need to decide and articulate your requirements and expectations clearly to your team.

Now let’s talk a little about “reasonable expectations”: Do you expect your team to work 60+ hours a week? In some cases this makes sense – a team working hard at “crunch time” to hit an external deadline, a tight knit group hoping to get venture capital funding or big bonus checks… 60+ hours weeks are OK, but, IMO, it’s unreasonable to expect people to do this week after week for years on end. Are there necessary tools are skills that are missing? There are two questions I ask myself: “What can I do to help?” and “Is what I’m asking for reasonable?”.

With all that background, now I’ll explain my “3 strikes” policy: People that work for me get fired after their 3rd written notice. In practice, this actually works out to 4 written notices because I usually don’t tell people out my “3 strikes” policy until what amounts to a written warning. Here is an example:

Boy, I sure am not happy to be writing this email, but tomorrow, unless you XXX, I am going to have to YYY. [...] These projects are all ultimately my responsibility and I can’t blame the lack of progress on external forces. [...]

You need to sit down and take a hard, honest look at yourself and your schedule and decide if you really have the time and willingness available for a project like this. If the answer is “yes”, then XXX.

Here at XXX, we have have a formal employment policy of 3 written notices, then you are fired. This email is a warning… please, please do not make me give you a written notice. This is not my idea of fun things to do. What I want is to have fun working with my friends, but it is not fun for me when I have to do all the work, write emails like this and/or receive angry calls from our customers.

Here are some concrete suggestions:

First and foremost, you need to spend several hours each day coding. On a project like this, you simply cannot procrastinate then get everything accomplished with one all night long programming marathon. Check out the section “The Three Hour Rule” in this article: Consider dedicating 2-3 blocks of 3 hours each day coding until you’ve worked yourself back into good graces.

XXX is your responsibility. I understand that YYY said he would do ZZZ, but you need to roll up your sleeves and do whatever is necessary to get this finished. Can you XXX? If you don’t do it, I will and like I said, it’s no fun for me when I have to do all the work.

There is no need to get stuck in the details of C#, XML, JavaScript, etc., when you can just pick up the phone and call or email me. If you haven’t figured it out yet, I am doing everything I can think of to make it easy to you to be successful. My guess is that you aren’t really putting in the time. However, if you are really getting stuck on programming details, that is just as bad when we both know you can can just pick up the phone and call me any time day or night.

These emails are tough to write and they take a lot of time, but I think it’s worth it. I didn’t put in all the gory details, but I think you can understand the idea that I’m trying to let the person know in as explicit terms as possible what it is that I want and that I’m willing to help them succeed. Firing somebody is a big deal and bringing somebody out of a slump is a really tough job. I think the “call me any time day or night” policy is important – often, challenges would not become major problems if the person had communicated.

Unfortunately, some people just can’t be saved. I’ve run into two situations that ended with people getting fired:

  • The person is not capable of performing at a high enough level – some people really are just just not a good fit for your team. This is the toughest case because often the person is trying really hard. Now that you know the person better, if your company is big enough, maybe there is another position that better matches their capabilities.
  • The person is not willing to do what it takes. This situation is not fun either, but by the time you get to the 4th written notice, it should be obvious to everybody that things aren’t going to work out. Usually, the person has made some clear choice to miss a deadline without letting me know in advance.

Firing somebody is tough, but it’s not the end of the world: Maybe your expectations are too high – if you’re a team leader, you’re probably a good bit above average – one way to learn is to fire and hire (a better way is to consult with others, but in small companies, this is not always possible). Or maybe the other person needs to do some soul searching. A nice, smart guy I hired once couldn’t perform. We went round and round about his lack of accomplishment (this was before I figured out the “3 strikes” policy). On a personal level, he was a great guy and I know he was having serious problems at home. I gave him as much slack as I could, but in the end I fired him. He actually called me a couple times afterwards. The first time was to let me know he was OK – he had found work and getting  fired had helped the home situation – it had been a wakeup call for his significant other. In the second call he told me that he was now leading a team and getting fired ended up being the best thing that could happened. Funny world.


Go ahead and hire your friends and have some fun at work. But:

  1. Take care of all money issues up front
  2. Make sure you’re doing your part – set expectations clearly and ask/discover what you can do to help
  3. Carefully wield the stick of employment by using a clear policy of written notices

Leave a Reply

Powered by Teztech