Of Sheep and Wolves
As anyone working in a team setting will attest, the success or failure of a project/task depends on how well the collective team performs.
This is true for a Startup, a product in a big established company or even a minor league sports team.
This makes the composition of the team a crucial task and of great import. In fact most leaders/executives are judged by the quality of the team that they build and nurture.
Recruiting thus makes for a very challenging and important task for the team/manager.
Which brings me to the subject line of this topic. Sheep and Wolves!
In a previous company that I worked at, we were in the middle of a recruiting binge. As was the norm in that group, we set out an interview panel consisting of key members from the team. There was a fair amount of debate on what was the right technique to interview candidates and how to rate them.
One particular member of my team, who at the time played the role of an architect, would come out of an interview and declare “She is a wolf.” Or “He is a sheep”. That’s it. He didn’t believe in a 1 to 5 star rating or an elaborate discourse on the technical merits of the candidate.
So we cornered him and asked him to explain his non-standard rating system. After all he was a technical architect and really, his job should be to evaluate the technical capabilities of the candidate in the area of algorithms, data structure etc. Whats with this “She is a Wolf!” line of interviewing?
He then explained to me his rationale. Yes, he was probing the technical merits of the candidate – not asking psychological or art related questions – but his inclination was to probe whether the candidate would listen to his instructions and how the candidate would engage in a debate when he threw in curve balls in the technical task/question.
For e.g. he might say “Never use the synchronized keyword in java … we never let anyone in our team use them” and wait for the response of the candidate.
Depending on how the candidate handled this – just accepted it meekly, showed indignation towards the seemingly unmerited dictate or launched into a passionate debate on the locking semantics available in Java – he would rate the candidate to be a “wolf” or a “sheep”
Now, why is this important? It turns out that if you just have a “rockstar” team, full of prima donna rockstar members, the team will not function too well. In the real world most projects/teams have challenging problems requiring deep thinking and solutions but very often its also true that there will be a whole bunch of mundane tasks and work required to launch the product.
A successful team contains folks that are willing to or maybe limited to performing these tasks. A team full of rockstars will fight it out to get the meaty pieces – and no one will be handling the crucial small tasks of dotting the i’s and crossing the t’s required.
Essentially, a team needs both wolves and sheep.
Recently, there has been a lot of focus on hiring in the valley – where the economy does not seem to have been engulfed in a depression – atleast from a tech point of view.
While building a team, its necessary to pay attention to many different angles and probe many different requirements. E.g
- While its true that a team full of people with similar backgrounds and history will very likely gel together and work well, its critical to have someone in the team that has a different mindset and sees things differently. This prevents a “herd mentality” and aids the project. Sometimes its good to have a wolf in a sheep’s clothing
- Some companies believe in only hiring very senior people – the so called 10x folks (http://www.quora.com/10X-Engineers?q=experienced+10x). Are these companies better off by potentially also hiring a few “normal” or “average” folks as well in every team?
Say you are in charge of hiring a software engineering team of 5 to 8 engineers. Further, lets say this was for building a web e-commerce site. Would you hire all engineers with the same skillset and expect them to equally contribute in all areas? For e.g. hire all generalist engineers who do database programming, server side as well as front-end programming? Or would you hire specialist in each field? (Before you say “its obvious, hire specialists”, I do know a few teams that have gone the “all generalist” way). Which model is more efficient and has a higher chance of success?
Note that in real life most activities that require a “team” are composed of members that have varied skillsets. For e.g. to build a baseball team, one does not go about hiring all first basemen. You need pitchers, cathers, pinch hitters … To build a team to man a restaurant’s kitchen, you need chefs, sou chefs, supplies in-charge etc.
Different companies have different hiring techniques and philosophies behind building teams. Netflix hiring is unique and interesting. (NOTE: I currently work at Netflix. The thoughts in this blog are entirely mine and may or may not reflect the company’s thinking) It believes in specifically hiring “rockstars” and has been very successful thus far. (http://account.netflix.com/Jobs)
There are of course many more angles to ponder.
Interested in this subject? Here are some nice references and links to discussions in this area:
- Avichal’s blog on building 10x teams: http://avichal.wordpress.com/2011/12/16/focus-on-building-10x-teams-not-on-hiring-10x-developers/
- http://gigaom.com/2011/12/20/how-to-hire-rock-stars/
- Hiring and building a Team: http://alan-ngai.blogspot.com/2009/01/hiring-and-team-building.html
Start Slide Show with PicLens Lite

