How Do You Handle Varying Performance Levels on Your Team?
Posted by BearyTechie@reddit | ExperiencedDevs | View on Reddit | 41 comments
Leads and managers: how is performance typically distributed across your teams? For example, how many developers are exceeding expectations, meeting expectations, or needing additional support?
Given that not everyone can be a top performer, how do you approach managing and developing your team to maintain performance and morale?
tactis1234@reddit
I am a tech lead over 5 employees and 3 contractors. As long as you have at least a couple of high performers mixed in with average folks. My strategy is usually to give everyone choice on what they wanna work on each sprint. Sometimes it doesn't work out because a below average person might grab something critical but usually that doesn't happen.
This keeps morale up because everyone feels like they can and work on what they want to work on. Also it keeps it so you don't look like your playing favorites.
Speaking of, what usually kills morale is if your high performers are constantly having to bail the low performers out because their stories are going to miss the sprint. A good lead should keep track of things and be able to help the low performers out without burning the high performers on the team.
Now if your team is loaded with tons of low performers. It really depends, sometimes the strategy is to transfer at least one of them away maybe they would be better on a different area? It's a case by case basis.
ShroomSensei@reddit
My last team had a majority of low performers and it became exhausting. We actually had a good average until two of our better engineers got picked over to help a dying team and you could instantly tell the shift. My manager had called it out right before it happened that the imbalance was going to kill the team but he really didn’t have much power to do anything over his skips decision. Slowly but surely it did, and the other team still had a majority of bad apples so those two engineers ended up leaving anyways!
What’s worse is that I did truly like the underperformers as people but as coworkers they really just missed the mark. I had to do way too much given my 2-3 years of experience. I was happy for the chance to grow but had only one engineer (tech lead) to learn from.
Looking back I wish they got managed out to somewhere else in the company but they didn’t so instead I left (among other reasons). Managing someone out is also a fairly long game of attrition so a lot easier said than done especially if those managers are getting the shit beat out of them from other sources.
tactis1234@reddit
Yeah that sounds like a shitty situation, I hope I don't experience it myself but as with all things in life given enough time it's probably going to happen haha.
Hopefully your new job is better!
jmking@reddit
In a lot of larger companies, you'll be told what % can be exceeds, how many can be meets, etc
This is why being a manager sucks shit. When stack ranking gets forced on you, it's out of your hands and you have to choose and then deal with the fallout.
CodelinesNL@reddit
In general I don't care that much as long as you're a net positive to the team, both in culture, personality and the work you provide. Obviously how well you perform has impact on the type of roles you can fill, and I will fight against people who try to get into roles they're not suitable for. But in my experience a lot of "average" devs are perfectly content in their role. I am going to push devs a bit to help them career wise (being content can lead to stagnation), but as long as everyone's happy, I'm happy.
The developers I actively act to get rid of, are the ones who are a detriment to the team. That can be a dev who's 'nice' but produces so much crap it affects the team negatively, but it can also be the "extremely smart" rockstar who's constantly making everyone hate their job.
That said; I only had to proactively get rid of someone 3 times in my entire career.
AggressiveAd5248@reddit
I’m not the best person in the world at programming, I really am not. I’m probably average. What I’m real good at though is thinking of edge cases, and thinking like a customer. I might be a “low performer” in the eyes of a 10x engineer type, but I actually bring value in my own way.
There is more to productivity than pumping out tickets, I’m also good at enabling, I have found inefficiencies in process and fixed them to speed everyone else up. I’m good at research and squeezing every last drop out of what we have existing before building something new.
I didn’t deliver many tickets this sprint but because of me the other 3 people delivered 20% more tickets than normal, and can do so from now on because of the groundwork I did, something like that.
scientific_thinker@reddit
There is a story about chickens laying eggs. Someone came up with the idea of keeping only the most productive hens and getting rid of the low performers. Once this was done, egg production crashed. The high performers ended up terrorizing each other rather than laying eggs.
This tells me to try to build teams where the whole is greater than the sum of it's parts. This means finding people with different strengths and weaknesses then try focusing on getting each member to focus on their strengths while covering for each other's weaknesses.
The other side of this coin. In my experience, managers rarely know which developers are the most productive. I don't know that there is a good way to measure developer productivity. What if you have a dev that is constantly refactoring everyone's code so that the entire team is more productive but this dev seems to add few new features? What if one dev willing to dig into the worst most poorly written sections of code. They have the most bugs and seem to be adding features slowly but they are working on the riskiest features? We can all come up with examples like this all day.
Flashy-Whereas-3234@reddit
Absolutely true, I've seen "the fat" get removed from a team by a manager, only to discover they got rid of their most skilled engineer. They were quiet because they picked stuff up proactively and got shit done.
The only effective measure I've seen for truly evaluating team health is anonymous 360 review, where team members can give honest feedback about other team members, and the raw feedback isn't shared, but the sentiment is.
The hardest part is creating a culture of psychological safety that feedback isn't going to ruin someone's career, it designed to help them grow, and will be used as such.
Managers in this industry spend a bit too much time toiling over the efficiency of the machine, without ever caring for the fact the machine is made from people.
rorschach200@reddit
> the machine is made from people
don't jinx it!
Flashy-Whereas-3234@reddit
I'd have been out of a job long ago if the people not on the tools ever figured out what the fuck they wanted to build.
thenizzle@reddit
What about the devs that code shit that someone else in the team has to pick up and correct?
TimMensch@reddit
Programmers aren't chickens.
Some of the most productive teams I've been on have had a small number of high performing developers. Bringing a mid-tier performer might have been a wash in trying to increase our velocity, and a low performer could absolutely have caused a hit to our velocity.
I've seen the latter happen. One guy wrote a bunch of APIs and then left the team. It took months of work to fix and replace the APIs he added, some of which could never have worked correctly.
HalveMaen81@reddit
https://dannorth.net/blog/the-worst-programmer/
This is well worth a read on the futility of trying to measure productivity
AConcernedCoder@reddit
This can't be emphasized enough. A dev may be another's junior in title but senior in a niche area. Equals may be expected to perform similary but have different skills and aptitudes in different code bases and again with the niche areas. I for one am quite tired of being pitted against other team members and feeling threatened by my lack of skills in one area while my strong points are ignored or devalued. The least management could do is to be clear about focusing on my lesser skills to help me develop where it's needed.
LengthinessOk6687@reddit
how do you identify those niche strengths in team members?
BlindTheThief15@reddit
Not a lead/manager, but I’ve had one-on-ones about this topic. Both my managers said that it’s normal to have a variance of performance levels. We all can’t be high achievers because then no one would be one.
One of them told me they intentionally avoid assigning complex or critical tasks to low performers. Basically keep them busy with mundane tasks. The other mentioned you should always give every developer a chance to step up, either they succeed or the fail and you document those failures if you ever need to justify cutting them.
Also, from what I’ve seen, managers would rather keep a low performer and have them do some work instead of having 1 less body. This also means they can cut the low performers before the on-track and high performers if they are ever asked to make cuts.
warmfeets@reddit
This is such sociopathic behavior from managers but in my experience absolutely tracks.
obelix_dogmatix@reddit
do you understand what sociopath even means? This absolutely makes sense.
hibikir_40k@reddit
It's not the manager's issue: It's the organization which will be demanding cuts. Just like when your stack rank only lets you have 1 exceeds expectation score: You really don't want two stars in a team like that, as you will be mistreating one if whoever you don't hand the top position is going to get a far worse bonus/rsu refresh.
Think of what happens in a team where everyone is doing well, but you have to hand a PIP to someone every year. You absolutely need to have bad performers to pick from, or you are in trouble. And there's companies that do this, some of which pay very well, and don't really hire bad devs. So a clearly bad dev or two is extremely valuable, for the peace of mind of everyone else!
The sociopathy comes many levels above, from the people deciding that you must stack rank, and the quotas you can have for each review type. And you learn that real quick when there's an adjustment meeting, and suddenly what you wrote in the review and the grade you are handing people don't agree in the slightest.
gefahr@reddit
I'm curious what you find sociopathic about that? Genuinely.
Few-Impact3986@reddit
It your job to utilize the resources you have to be effective as a team.
Assign work that they can complete. Give them work that helps them grow if the issue is just inexperience/skills.
Now dealing with apathy is different.
ProfessionalWord5993@reddit
The 2 cases I could do nothing about were apathy.
gefahr@reddit
Every time I've had to PIP someone, it's been apathy. There's enough resources out there to learn to get better. And if you passed the interview, you're smart enough to learn, so..
ProfessionalWord5993@reddit
Thanks for that, it gives me a bit of consolation. For me in those cases its the whole "you cant help someone who wont help themselves"
gefahr@reddit
I tried for too long when I was greener. Damaging my own mental health or at least sapping my emotional energy to help others, in the process.
Now I help people who want and react to help. The other people deserve help too, I'm just not equipped to provide it to them as their employer.
juusorneim@reddit
For the people who were apathetic, did you figure out exactly why, and what did you try to help, and how exacrly did it damage you? Just looking for more details and clarity to understand better.
ramenAtMidnight@reddit
Distribution: there are ups and downs, at the moment my team is quite the normal curve.
The how-to question: this is too broad I have no idea where to start, it’s like asking how to live life. Expect nuances and personal experience. Do you have anything more specific? A situation maybe?
Soft-Job-6872@reddit
Gaussian
shozzlez@reddit
As an IC, Stack ranking absolutely kills my motivation. Give me the rating I deserve. I don’t care if someone else got an exceeds, so I have to get a Meets.
gefahr@reddit
Stack ranking rubs me the wrong way, too. But I'm starting to see how it ends up being the lesser of two evils. I am very resistant to it, but we had a review cycle recently where every single engineering manager scored every one of their ICs average or above (we use 1-5 scale).
We have enough engineers to make that an ~impossibility. And now if I need to make cuts, I have no useful information from managers on perf.
I'm not saying stack ranking is the solution, but I don't know what is (other than firing managers who don't do perf management correctly, which is on the list.)
ManOfTheCosmos@reddit
Firing shit managers should be priority 1 before you start cutting good devs
gefahr@reddit
1000%.
WaltzOther5904@reddit
missing the title makes it mysterious
No-Try5566@reddit
Personally 3 levels like that is just not enough granularity. You can exceed expectations and be great at your job without being a superstar. Seems silly to enforce some kind of quota for each level
Mundane-Charge-1900@reddit
This is very Jack Welch vitality curve. It’s widely used but there is no evidence that it actually works better than other systems.
It’s all just vibes and mumbo jumbo, that ended up in books about business written by successful business people.
recycled_ideas@reddit
Unless the performance difference is absolutely massive, you're probably much better off cutting the people whose morale gets low when they think other people aren't doing as much as them than cutting the people they think are doing less.
Obviously if it's absolutely massive and the lower performing people aren't meeting even the most basic of expectations this doesn't apply, but every person I've met who was overly concerned about other people's work was a toxic mess to work with.
BoBoBearDev@reddit
In my experience, it is all about money. I have seen management quickly rotated low performer out because he is performing at jr dev level while getting paid as sr dev level.
I mean, it makes sense. If the better performing jr dev knows about him getting paid a lot more doing the same or less work or less quality, they gonna be upset.
You don't need all rockstars in a team, but they need to perform at the level of their salaries, not just some token employee.
gefahr@reddit
The first sentence had me ready to disagree, but no, I agree with that. Some of our devs make literally 3x what others do. But my expectations of them are >3x higher.
davearneson@reddit
I find that about 10% of people are lazy and do as little as possible. I try to fire these people when I come across them.
psyyduck@reddit
Go watch the marvel avengers movies again. People have different strengths, people are peaking at different times, people have personal struggles you don't know anything about, etc. Figure out what fires them up and give them more of that. Figure out where their weaknesses are and help them shore it up. It's an art, like coaching a sports team.
Quiet-Illustrator-79@reddit
Favorite, least favorite, everyone else -> broadcast this across IC levels