The great thing about measuring developer productivity is that you can quickly identify the bad programmers. I want to tell you about the worst programmer I know, and why I fought to keep him in the team.
You misread that entire thing. It’s not that the team was bad, or that there was any significant turnover. Nor is Tim unable to transfer his knowledge, since that’s not the point of what he does.
He’s a sounding board. A sober voice asking the right questions when you’ve got your head down hyperfocused on a problem. Someone to talk to just to make sure you’re on the right track, even though you were pretty sure anyways. The team would still perform without him, but he improves their quality and performance just by standing in for the duck and actually asking the right questions. It’s a very subtle, very delicate job. Not everyone can do it. That’s why they keep Tim on the team.
There is zero evidence that the team performs better or worse since at no point did Tim stop being Tim. There is no base line.
If Tim had tried to pick up some points and the result was the rest of the team stumbling, that would be one thing. Tim didn’t, he kept doing his own thing because his team lead is afraid of Tim.
Spoken like a true beaurocrat who only cares about the individual KPIs. If all you look at is the individual, you’ll miss the performance of the team.
So you fire Tim. Great! He was a slacker who didn’t produce any story points. Now everyone is working individually. The other seniors don’t have time to help juniors because they have their own stories to work on. Gotta keep those stats up…don’t want to end up like Tim. The juniors start introducing bugs into the code accidentally. That’s not good, their stats are going to go down. Except the one that picks up the bug fixes, his stats look great! He’s sure to get a promotion doing nothing but fixing everyone else’s mistakes. Then the other juniors start catching on, and start pickup up their own bug fixes that they introduced. Now the juniors are spending about half their time fixing bugs they created, while seniors start looking like slackers because they don’t produce as many story points. Well something needs to be done about that, because you don’t want to end up like Tim…
Any points system can be gamed. If all you look at are the numbers, you’ll miss how the team really works.
If Tim had tried to pick up some points and the result was the rest of the team stumbling, that would be one thing. Tim didn’t, he kept doing his own thing because his team lead is afraid of Tim.
Tim should be fired.
In either case, all that matters is whether Tim produced story points or that rest of the team produced enough story points, and that Tim should be fired for not doing that. I’m literally just using you’re own words…
If the story is true, Tim coaches the new hires and on boards them into the environment. Tim serves as a sound board for the senior techs, since he’s privy to the larger departmental scope. He is the point of contact for the team.
The manager telling the story needs to be fired. Tim is doing his job.
The manager here only serves to add a layer between Tim and management that is ultimately unnecessary, as the story proves.
What evidence do one needs other than the opinion of their teammates and lead?
No one should drop players from a team due to statistics. Otherwise you’d have a non functional team of cheap wannabe-Ronaldos unable to function. Which is the reason kpi based approach fails
I literally said what evidence could be collected.
its hilarious how we spend our careers developing complex algorithms, reducing concepts into math and then delude ourselves into thinking the only algorithm that cannot be written is one that evaluates our own performance.
Because it cannot be mathematically developed. KPIs as class of algorithm are linear dimensional reductions from a complex hyperspace to a small, arbitrary reference system built on non orthogonal axes, aimed to capture non periodic, non stationary phenomena (i.e. that unpredictably evolve over time).
Mathematically, performance kpi do not make much sense for most jobs, unless the job is so straightforward that the hyperspace has such low complexity that KPIs are meaningful representation. Not even a call center job has such mathematical characteristics…
As a task, AGI is mathematically much simpler task.
However performance kpis are the only thing many have to judge, as they lack technical and personal skills to do otherwise. It’s a tradeoff, but we must recognize that kpi are oversimplifications with extreme loss of information, many time useless
I am a human, who happened to be browsing lemmy when you answered, and work in ML and with a background in algorithms and HPC. It happened to be a lucky coincidence
It just sounds like Tim was no longer a developer and should have a manager title, as he was training and teaching and on boarding all the time.
If his title was no longer developer, because he wasn’t doing any development on his own, said metrics wouldn’t apply to him anymore, and the issue would be resolved in a reasonable way.
With juniors Tim would pretty much be training them and nudging them on to write better code.
With seniors, like the short article says, it’s more a sparring match, trying to find the best solution. You also find a lot of edge cases when someone else works with you together.
I haven’t been in a company yet where they have a full time floating position for pair programming, but if it’s a senior doing it I can see how it’s very beneficial for product quality.
This is too simplistic in the opposite direction.
What is with the team that Tim is only pairing.
Are they constantly hiring? Are the hires bad?
If Tim unable to transfer his knowledge, basically holding their hand, making bad hires look worth keeping…he’s actually hurting the company.
If Tim is not increasing their solo performance then something is wrong.
You misread that entire thing. It’s not that the team was bad, or that there was any significant turnover. Nor is Tim unable to transfer his knowledge, since that’s not the point of what he does.
He’s a sounding board. A sober voice asking the right questions when you’ve got your head down hyperfocused on a problem. Someone to talk to just to make sure you’re on the right track, even though you were pretty sure anyways. The team would still perform without him, but he improves their quality and performance just by standing in for the duck and actually asking the right questions. It’s a very subtle, very delicate job. Not everyone can do it. That’s why they keep Tim on the team.
I understand the justification.
I am not convinced.
There is zero evidence that the team performs better or worse since at no point did Tim stop being Tim. There is no base line.
If Tim had tried to pick up some points and the result was the rest of the team stumbling, that would be one thing. Tim didn’t, he kept doing his own thing because his team lead is afraid of Tim.
Tim should be fired.
Spoken like a true beaurocrat who only cares about the individual KPIs. If all you look at is the individual, you’ll miss the performance of the team.
So you fire Tim. Great! He was a slacker who didn’t produce any story points. Now everyone is working individually. The other seniors don’t have time to help juniors because they have their own stories to work on. Gotta keep those stats up…don’t want to end up like Tim. The juniors start introducing bugs into the code accidentally. That’s not good, their stats are going to go down. Except the one that picks up the bug fixes, his stats look great! He’s sure to get a promotion doing nothing but fixing everyone else’s mistakes. Then the other juniors start catching on, and start pickup up their own bug fixes that they introduced. Now the juniors are spending about half their time fixing bugs they created, while seniors start looking like slackers because they don’t produce as many story points. Well something needs to be done about that, because you don’t want to end up like Tim…
Any points system can be gamed. If all you look at are the numbers, you’ll miss how the team really works.
A beaurocart? Just going to make shit up about me to fit your head cannon?
I never said any of the shit you claimed.
In either case, all that matters is whether Tim produced story points or that rest of the team produced enough story points, and that Tim should be fired for not doing that. I’m literally just using you’re own words…
I disagree.
If the story is true, Tim coaches the new hires and on boards them into the environment. Tim serves as a sound board for the senior techs, since he’s privy to the larger departmental scope. He is the point of contact for the team.
The manager telling the story needs to be fired. Tim is doing his job.
The manager here only serves to add a layer between Tim and management that is ultimately unnecessary, as the story proves.
Fire the manager. Promote Tim.
Whoever is “protecting” Tim should be replaced by Tim.
Tim doesn’t want to code, that’s fine. Not everyone is cut out to be an individual contributor.
But he is not a senior developer, he is a team lead or a team mentor. He has the wrong title.
What evidence do one needs other than the opinion of their teammates and lead?
No one should drop players from a team due to statistics. Otherwise you’d have a non functional team of cheap wannabe-Ronaldos unable to function. Which is the reason kpi based approach fails
I literally said what evidence could be collected.
its hilarious how we spend our careers developing complex algorithms, reducing concepts into math and then delude ourselves into thinking the only algorithm that cannot be written is one that evaluates our own performance.
Because it cannot be mathematically developed. KPIs as class of algorithm are linear dimensional reductions from a complex hyperspace to a small, arbitrary reference system built on non orthogonal axes, aimed to capture non periodic, non stationary phenomena (i.e. that unpredictably evolve over time).
Mathematically, performance kpi do not make much sense for most jobs, unless the job is so straightforward that the hyperspace has such low complexity that KPIs are meaningful representation. Not even a call center job has such mathematical characteristics…
As a task, AGI is mathematically much simpler task.
However performance kpis are the only thing many have to judge, as they lack technical and personal skills to do otherwise. It’s a tradeoff, but we must recognize that kpi are oversimplifications with extreme loss of information, many time useless
That’s quite a lengthy response for the time between my post and your write up.
Not sure if you’re a bot or just used one to form your thoughts.
I am a human, who happened to be browsing lemmy when you answered, and work in ML and with a background in algorithms and HPC. It happened to be a lucky coincidence
Ok, so you’re not a software engineer. That’s good to know.
I did not say it has to be kpi on whatever other jargon you want to throw at it.
Software engineers slogan is: enough time and motivation .
Except when it comes to evaluating ourselves then it’s just not possible.
How can that be?
The bullshit excuses we tell ourselves is how we’ve ended up with ridiculous interview cycles with take home test.
It just sounds like Tim was no longer a developer and should have a manager title, as he was training and teaching and on boarding all the time.
If his title was no longer developer, because he wasn’t doing any development on his own, said metrics wouldn’t apply to him anymore, and the issue would be resolved in a reasonable way.
That was a common sentiment on the hacker news discussion on this story.
I don’t disagree.
You never heard of pair programming?
With juniors Tim would pretty much be training them and nudging them on to write better code.
With seniors, like the short article says, it’s more a sparring match, trying to find the best solution. You also find a lot of edge cases when someone else works with you together.
I haven’t been in a company yet where they have a full time floating position for pair programming, but if it’s a senior doing it I can see how it’s very beneficial for product quality.
Tim should be fired for insubordinate and his lead should be fired for protecting him.
I get that every shit developer thinks they a Tim or aspires to be one but Tim is a lazy developer doing the fun parts without producing.
Everyone here is assuming Tim is something because you’ve told he is by the lead.
It’s troubling.