I don’t like this story. The outcome is only accidentally good and what the author seems to miss entirely is the elephant in the room: A crass failure to communicate with the developers. If you try to establish something like KPIs (not commenting on if that is good or bad here) you need to talk to the team and get them on board. If you treat them like lab rats and try to measure individual performance from the outside that is an obvious fail. In the end, where they state that they “quietly” dropped it, indicates that the real lesson was not learned.
Uh, and a dilbert comic.
I think that is rather intentional. The story does not actually offer much of an insight, but give it a Dilbert and slap a clickbaity, slightly misleading spin on it, and you get a descent amount of upvotes.
Removed by mod
Scott Adams is a raving lunatic.
Here’s a resonable summary: https://rationalwiki.org/wiki/Scott_Adams
You can also check out his blog directly.
Removed by mod
Story points and velocity always felt to me like a flawed metric. It encourages volume of work, and discourages quality of work. The worse your code is, the more stories and tasks you can create to fix it, and the higher your velocity. It’s a bit of a shame that it’s used so widely as a measurement of work completed, and I wish a better means of measuring productivity would become more popular instead.
It’s not flawed. Nobody should get rewarded or encouraged by story points. It’s solely a planning metric and not a metric of productivity.
I guess the flaw is that it’s (almost) never used only for planning and is often used as a metric of productivity, from my experience. It becomes a competition to see who can check off the most story points, and velocity is often used to compare developers against each other.
[…] and velocity is often used to compare developers against each other.
Wow, that’s messed up. Luckily I’ve never had such a team/such leadership.
Yeah I’ve seen it, it about burned the company to the ground too over exodus of talented personnel… so… managers beware
Story points are meant to have a shared understanding about complexity during the planning phase. There where never meant (and do not fit) for either capacy planning or to measure the throughput.
If your PO is using this he or she is either not well informed and/or uses this as a tool to create toxic pressure.
Darn. I went into that article hoping to hear a hillarious article about some coder who insisted on using only his self-written buggy bubble sort implementation rather than the sort methods in the standard library or who they couldn’t get to quit deleting necessary features from the codebase.
Good story even so.
Have you heard about JDSL?
There’s no way this is real. Completely insane.
It might seem not real or insane to us, peasants. But not for Tom. Tom is a genius.
…What The Fuck…I…I can’t
What the actual fuck. It’s a made up story I’m sure.
Not sure why this post doesn’t have a ton of comments. It illustrates the fundamental problem with KPIs and performance measurement. When it comes to measuring human production with digital tools, because the binary measure is so restrictive, it leaves out a universe of values and information that is just ignored as a result. And this very often has dramatic consequences.
Posts tend to generate a lot of comments by:
-
being funny, spurring people to try to be funnier (usually failing); or,
-
by being interactive, spurring people to answer a prompt in the premise of the post; or,
-
by being controversial, spurring people to argue.
This isn’t particularly funny or interactive. And it’s not very controversial either; I think most programmers will agree with this premise.
Did my best with #3 but I continue to suspect most of the people in these fediverses are very young and therefore inexperienced.
I’ve stated an opinion that aligns with what I’ve read in the hacker news discussion and the responses are aggressive.
Cargo cult is strong here. No discussions will form while the ditto heads carry the majority.
I’m 45 years old with over 20 years of IT experience. I felt I’ve been very reasonable in my responses. Meanwhile, you’ve accused me of “making shit up”, and dismissed someone with experience in machine learning with a background in algorithms and high performance computing as “not a software engineer”.
You’re not being controversial, you’re just being a troll.
You feel dismissed, I say classified.
IT experience is not equivalent to software developer experience.
Machine learning and running high performance are hand in hand.
But machine learning is not software engineering, it tool usage. It’s not the same job title.
I do know why you are taking this comment personally since it wasn’t even directed at you but the other responses.
I do know why you are taking this comment personally since it wasn’t even directed at you but the other responses.
I assume you meant that you don’t know why, but it’s because you’re not arguing in good faith. You dismiss anyone that disagrees as being young and inexperienced, you accused someone of being a bot simply because they wrote 3 small paragraphs in a 12 minute period, and now you’ve dismissed all experience if it’s not a specific type of software development role.
As soon as its apparent that someone isn’t just blindly accepting your arguments, you go straight to ad hominem. If you can’t form an argument without resorting to insults, you’ve already lost…
You at not point attempt to refute any of my points.
You want to feel attacked, nothing I can do about that.
I wasn’t dismissing you but I will now.
-
Myopic decision-making is a standard human fault. The problem is that some Deciders have wildly disproportionate effects on everyone else. (i.e. leadership roles across business and government)
We can’t fix individual ignorance and prejudice to a level that will resolve the issue, so maybe we need to invest our efforts in forcibly distributing power to make sure one person (or a small group) can’t unilaterally ruin thousands or millions of lives.
Most experienced developers already agree with you
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.
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…
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
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.
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.
Huh, it’s like I’m reading something my nephew wrote. He has a tendency to only read the first few sentences, skim through the story, and come back to his conclusions based on those first few sentences.
You would be wrong.
I’ve read the article a couple times now trying to understand why this resonates so hard with some people.
I have tried to bring up what I feel are valid points and the responses are not engaging with what I’ve discussed but acting like I lack the ability to understand.
I get that attacking me is easier than addressing my points; I have the social skills of a software engineer after all.
I like code because there is no arguing. It’s just math.
People on other hand are caught up in emotions and ego, creating anecdotes to fit their biases.
I can’t fix the tangled mess of the human mind, but I can fix the crazy spaghetti code those type of people create.
Firstly, anecdotes aren’t “created”. Anecdotes happen. The reason a singular anecdote isn’t accepted as fact is because without a pattern between isolated incidents there is no way to prove that an anecdote is not simply another isolated incident.
Things like this, needing to explain this concept is why I think you don’t understand. Your knowledge of English is clearly rudimentary, and you use words you don’t understand to explain concepts you understand less.
It is of no surprise to me that someone who doesn’t know how to communicate simultaneously doesn’t see the value in good communication. You are cog, cogs are not required to do anything beyond what they do.