Tuesday, October 30, 2007

Role-Based Recruiting: Building a Sustainable and Performing Team

You, the Development Manager, have an opening within your team.

If your like most, you go though the regular process of posting the position, interviewing people with the latest technological acronyms on their resume, hire one you are most impressed with in hopes of improving your team.

This may or may not work out for you. Everyone wants to have that new star who is going to revolutionize your team. It was even referenced in Star Wars Episode I.

There is quite another way to approach this opportunity. Think of it like the NFL draft. With a team's top pick, they can be said to go with the Best Available Talent, or to fill their Biggest Need. While at Retuers I was a biggest need recruiter, and using this philosophy changed not only how I interviewed candidates, but also how I reviewed my staff. If you are a Development Manager without the luxury of infinite time in your day, this may be of help to you.

I found in my group four roles of developers, based upon the kind of tasks they liked doing and were good at. Finding the right balance between these development roles was important to my group's success. You may find your situation warrants other roles, or classifying them differently.

Role 1 is the Mainstream Developers. They are veterans of your project and understand the problem domain. They are well equipped to take on the everyday programming tasks which come up regularly. They have been doing this for some time and can continue to crank out the updates. These tasks may be maintenance, or a regular cycle of features. Mainstreamers are proud to be at the center of the every day activity of the project, for that is where the action is at.

Role 2, slightly different from Role 1, are the Jacks of All Trades. Jacks are like mainstream developers in that they are experienced, but this experience may be in another domain. Jacks have the ability to get any odd type of task done. In fact, the weirder the better for Jacks. They take pride in the fact that they have done this sort of thing before and that their experience is helping the group.

Role 3, are the Horizontal Developers. These people are techincally your strongest and have a great grasp of the language, the programming paradigm, and tools you use. They make it their business to have broad knowledge, and like to be working on the newest initiative you have. They may not know the domain as well as Mainstreamers, but are resoucefull enough to navigate their way. They get their kicks from working on broad projects, which touch many areas of your project. Chaning dozens or even a hundred files at a time is noting new to them. You can trust Horizontals to work on something new, and not well defined. They will turn it out right.

Role 4, are the Vertical Developers. These people have are the strongest in algorithms. Get them a shovel - they like to dig deep. They take pride in working on the hardest problem you have, and while there, will fix a few problems you didn't know you had. Verticals will be absolute masters of a small, but critical part of your project, and will answer questions about it off the top of their head, while everyone else will ask "How did you know that?"

So depending on your project, you will need varying amounts of each role. You can't get all of one, but should aim for a balance based upon your needs. Each has a unique part to play in your project -
  • Mainstreamers and Jacks are said to keep the lights on, so that you don't go out of business while waiting for the next release.
  • But the next release will never happen without Horizontals.
  • Verticals usually have a mix between hard things in maintenance and hard things in upcoming releases.
  • Mainstreamers and Jacks free their manager's time. They are regularly asking for new work, and the manager must keep their queue full.
  • Horizontals and Verticals consume their manager's time. They are tallented, no doubt. But they are always working on something difficult and need to engage you.
  • Mainstreamers are generally undervalued by many groups, as they don't have the flash of Horizontals or Verticals, nor the polish of a Jack. But they have value. Huge value. Without the Mainstreamers, the other 3 groups are going to have a fit because you pulled them away from their core competency.

Balancing the number of people with the various roles is a key job of the Development Manager. Do not just replace a Mainstreamer with a Horizontal. There is only so much Horizontal work to go around. Horizontals go crazy without a big project to do. You better always have a Vertical and a Jack, or you'll be in big trouble, someday, when you need them. However, your project changes over time, and you may go from needing many of one role to needing only one as a project matures.

So in what role will someone fit in your project? You have to ask them, which kinds of projects they were asigned in their current project. But I'll talk more about interviewing in another post.

No comments: