Why are development teams not full of A-Players
When I read the Steve Jobs biography one thing stuck with me, which is the quality of the teams, he wanted to work with A-Players, during my career at had at best two A-player teams, maybe even one, I’m also reading the zen and the art of motorcycle maintenance, and while I’m not particularly fond of philosophical rhetoric the chapter about quality struck a cord with me, so it got me thinking about this subject and here are some of the thoughts I have formulated regarding quality, teams and software-engineering.
Let’s start with the very first question, how do you define an A-player? If you have read the motorcycle book you will know that defining quality is hard if not impossible, yet when you see it you recognize it, that is all well and good, but it is not helpful in practical terms, so we have to choose certain proxies or parameters that help with this, now there is this very interesting video (Go watch it NOW) about the lessons learned by the people doing interviews in the high-level tech companies, out of this video I took to things; 1) At some point if you compare at the quantitative scores and the actual performance of the people hired, they don’t correlate, the quantitative scores are pretty much random, however the qualitative score has been proven to provide actual valuable information, we will come back to this point later. 2) Now that we know that the qualitative information has more value, we just have to pick a proxy for it, from my experience I can easily tell you what this is: trust, this is still very fuzzy, but I work with examples so here are some:
- If I give you a task, do I trust you will do at the very least a passable job, even if it is outside of you domain of knowledge or expertise, you will make the effort to learn/research and come up with a solution that will at the very least buy us time and not explode on the first gust of wind, basically: given the constraints I can leave you to own and trust the solution will be acceptable.
- If I ask for your opinion, I trust that you will relay the information you have available, you will be truthful where you knowledge limits are and to do best of you knowledge guide towards a solution and or complement your information afterwards to avoid potential pitfalls, basically: I can trust your opinion as much as you yourself trust in it.
- When push comes to shove, we might disagree but the overarching goals should remain aligned, and that should set the tone for our daily interaction, disagreement is good and healthy the problem comes with there is one-sidedness and I can no longer rely on we working towards the same goal, basically: I can trust your goals and mine align so we work towards the same objectives.
I do believe anyone can become an A-Player, of course there is somewhat of a hard requirement on raw intelligence and a certain technical level, but I think those skills only facilitate it and do not make or break the quality of a team member.
So that brings me to the first point I made, if you assume that B/C players can be elevated to A players, the question is then how?, we already know quantitative scores don’t reflect reality too well, but I’m getting ahead of myself:
- Most of the companies I’ve worked for HAVE NO EVALUATION PROCESS, in spite of how much I hate the hard evaluation performed by FAANG companies, I believe the other route is even more harmful, management doesn’t know who A players are, the rest of the company knows, and people who work with each other know, but it is tacit knowledge (and it follows the pareto principle). Other times, management evaluation is soo subjective and so skewed that it has 0 correlation with reality. the consequence is the same A-players stop performing because they are rarely recognized and B/C Players remain the same, sometimes because they don’t know they are B/C Players and sometimes because they don’t care.
- When things stop working out, you will enter a death spiral, think about it, you have people who under perform for years, everyone just deals with it, until the rough times come, you have to fire people, you have no idea who is worth keeping and who has to let go, things start to go badly, A-Players will leave, because… THEY ARE A-PLAYERS, they don’t need to sit around and wait for bad news, then you enter the spiral, more good people leave and you are left with be B-players, performance takes a bigger dip, then you are done.
- There is no path for B/C Players to grow and turn into A-Players, this is the other part of the problem, you might get a feeling of who is not doing their best, and you let them be, it is very related to the death spiral but the consequences are felt on a longer time span, but then there is no clear plan, B-Players remain so… they have no feedback to know what they are doing wrong, they have also might have no chance to learn, because they are put in a role where they only need to perform at the current level.
So, now the question is, what to do? I’ll tell you right now, PUT AN EVALUATION PROCESS IN PLACE, make it both qualitative and quantitative, we know the quantitative data has some randomness in it, so put less weight on it, but: 1) it will force you to think about the team, you will discover things on your own and you will be in a better position, 2) you will be able to extract tacit information from your team/organization, but you have to make it systematic, random conversations don’t work and if people are asking for it, it is already too late, heck don’t even do it for the people at the end you will gain a lot of benefit out of this.
Another important point is: FOLLOW THROUGH WITH IT, if it means getting rid of people, changing their positions, training them… you have to go through with it.
One other question is why would you want to put the effort on doing this, my personal opinion: there are not enough A-Players and your company/org is probably not interesting enough to attract enough of them, don’t you think having a team of B+ is better than the alternatives?