Developing a Bench

Building a solid bench involves years of preparation with no immediate reward. Hiring a team from scratch is a beautiful dream. I got to do it once at a startup before I had much experience as a manager. In many ways I’d love to re-live that experience, but I haven’t worked at a startup in almost 10 years now.

If you’re not at a fast expanding startup you’re hiring opportunities are going to be an uncommon occurrence. Unfortunately they’re probably the most critical aspect of your job. Nothing is more important than building a team with the right people. Management success is all about people.

Building your bench is the process of making sure when you do get the rare open req that you have some great people just a phone call or email away.

I’m still working on techniques here and my networking skills need to grow, but this has been the tips I’ve picked up over the years:

  1. Keep in touch with your high performers from previous jobs. Obvious, but this means you have to make a habit of making the occasional phone call or email and making sure you know how there career and life are going.
  2. Stay in the same area. I’ve violated this one before and it can hurt. I’ve worked for some great companies in the Bay area and in Las Vegas and had a good network of people in both locations. When I moved up to Sacramento 8 years ago I still kept in touch with many of them, but a remote bench just isn’t effective compared to having a local one.
  3. Attend conferences, local user groups, and meetups. Passionate software developers show up at user groups and meetups. The local java and ruby user groups have been a great source of motivated talent as well as a nice social gathering. And yes this means when the group goes out after the presentation you should tag along.
  4. Keep old resumes and interview notes. I’m in a medium size city, but there are only so many software developers in a town this size. You will run into people again. Often they’ll be developers who you thought had potential 7 years ago, but were too inexperienced to bring on board. It always feels like deja-vu, but it’s happened to me more than once.
  5. When opportunities arise be frank about the minuses. Good recruiters know this well. You’re dealing with a long term relationship so you don’t want to get someone excited or bring them into a situation that is too risky or just wrong for them. They need to know if the company is generally slow paced, doesn’t have that many benefits, or they’ll be working with a largely junior team that will need a lot of mentoring. Selling the upside is fine, but give them the downsides.
  6. Don’t get frustrated if some of your bench turns you down. Maybe the opportunity was great, but someone’s comfort level in a downturn is to stay with their current company. The situation may be very different a few years later.

2 comments to Developing a Bench

  • I like the concept of the bench. However I find it hard to keep people on the bench for a longer time. It’s exactly like in sports, when you don’t get through to the pitch you get frustrated and go. Of course because this bench is virtual so leaving it is pretty virtual too.

    People don’t stay at the same place. They move their careers ahead. They change their positions. When I look at my friends from the university I see managers, startup owners or, in the best case, tech leads. If I had to hire a senior developer among them now it would be really hard. A couple of years ago I wouldn’t have a problem to do it. Heck, I did it a few of times.

    Of course it doesn’t mean networking isn’t good. It is very important, but keeping the bench is just a difficult task.

  • With a long term bench you’re cycling in new people every so often. Sometimes these are even people you interviewed prior and kept in touch with because they just weren’t a good fit at that time. I find user groups and conferences lead to finding more relevant people for the virtual bench.