Monday, March 23, 2015

Wanted: Technical Lead (What Should I Be Looking for?)

What Makes for a Good Technical Lead?

Every team has a technical lead, whether they have been officially blessed with the title by management or whether they have been unofficially recognized as such by the other members of the team.  Sometimes, the team will even recognize someone different from the designated technical lead as their "unofficial" technical lead.

What innate need drives a team to naturally select someone as a technical lead?  Why would they sometimes choose their own technical lead over one that was provided to the team by management?

There is nothing surprising or unique about it.  You see this happen with every kind of team, not just development teams, because every team needs a leader:

  • to help guide them through difficult decisions and situations (technical and political);
  • to help them organize their work;
  • to mentor and grow them and their other team members, so they can reach that next level;
  • to stand up for them, fight for them, and unconditionally support them;
  • to be down in the trenches alongside them, experiencing the same issues as they are;
  • that can relate to what they are dealing with and will listen to them and give them whatever support they can to help them get through it.

In the absence of a leader, or in the absence of a designated leader providing these things, a team will naturally gravitate toward the person who can best provide these things to them.  Sometimes a team will fail to do this, often out of fear of repercussions (from either management or from the existing designated leader), but sometimes because they subconsciously recognize that none of their members are able to fill that role.

Can any person with a strong technical background fill the role of a technical lead?  Absolutely not.  Just as not every member of a sports team has the ability to lead the team, not every member of a development team has the ability to lead the team.  If you consider only their technical knowledge, you are completely ignoring the leadership aspect of the position.

So, what makes a technical lead a technical lead?  Not many titles actually make sense, but in this case, the answer is quite literally in their title -- they need to be a great leader, and they need to have the technical knowledge to be able to support the team's needs.

I Need a Technical Lead!

If you are looking to hire or promote someone to a technical lead, what should you do?

One thing you should never do is promote an underperforming developer into a management track simply out of a desire to better "fill" the team with high performing developers.  Doing that is shooting yourself in the foot.  Now, instead of just acting as a small drag on team velocity, you have given them the power to wreak havoc on the team to the point of totally destroying velocity, morale, and the quality of the solutions that they produce.

I am not saying that an underperforming developer cannot ever be a successful technical lead, but rather that you should not promote an underperforming developer simply because you want to move them away from the code to shift the balance of the team toward higher performing developers.  (I have seen the result of this multiple times, so yes, unfortunately some managers actually do this.)

The best thing you can do is observe your teams and figure out who everyone is gravitating toward.

  • When they are stuck and need help, who do they turn to?
  • When a debate is occurring, whose opinions do they listen to and value most?
  • When a team member is struggling, who takes it upon themselves to listen to them, determine what the problem is, and help them solve it?
  • Who is the natural mentor on the team?
  • Do other teams also gravitate toward this person?
If there is a single person that is the answer to most of those questions, then that person has very likely already been subconsciously selected by the team as their technical lead.  If you want to promote anyone, that is probably the right person.

If you do not have anyone suitable within your organization that you can promote, you may find yourself looking to hire a technical lead for your team.  In that case, how can you be sure that you are hiring a competent technical lead?  You cannot.  Yes, you read that correctly, you cannot be sure that you are hiring a competent technical lead.  You can do your best to try to ensure that they are technically competent and that they have been in leadership positions before, but that is no guarantee that they are an effective leader or will be seen as such by your team.

So are you utterly and completely hosed?  No.  (Thank goodness!)  Ideally, I would suggest not hiring a lead position, but rather hiring one or more very technically competent and seasoned developers.  You are going to want those on your team anyway, and if you hire enough of them, you are very likely to find a natural leader that you can promote into the position.  It will take longer to get your technical lead this way, but in the end, you will know that it is a technical lead that your team respects and will follow (because they had already subconsciously already selected them as their technical lead).

If you are unlucky enough to not have that luxury of waiting until a natural leader emerges from within your ranks, you can try to improve your screening of candidates.  One thing that I would suggest would be to adjust your interview process for technical lead positions to include a couple hours working with a subset of the team (3-4 people) on a non-trivial problem.

  • Watch how the candidate interacts with your team members during discussions and as they implement a solution.
  • Make sure you are looking for positive and negative interactions and how the candidate reacts to and adjusts to negative interactions with the team.
  • Be on the lookout for moments in which the candidate spontaneously mentors one or more of your team members.
  • Toward the end of the session, evaluate whether your team members are valuing or ignoring what the candidate says.  Is the candidate forcing their opinions on the team, or is the team looking to the candidate for their opinion?

It will not be a perfect measure of whether the candidate will make a good technical lead for your team, but it will provide you with more realistic data to base your decision on than having your team sit around a table and ask canned questions of the candidate.  It might also seem somewhat expensive for a step in the interview process, but it is a drop in the bucket compared to the cost of hiring the wrong person.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.