Hacker News new | past | comments | ask | show | jobs | submit login
Moneyball for Software Teams: Quantifying Dev Performance (rajivprab.com)
55 points by ingve on July 2, 2023 | hide | past | favorite | 77 comments



> And every two weeks during my 1:1 discussions with each engineer, I would also pull up that individual’s personal velocity chart and use that to guide our performance discussion. If their chart is on an upward trend, I would congratulate them on a job well done. And if their chart is on a downward trend or significantly lagging behind their teammates, I would ask them what I can do to unblock them and help them achieve their full potential

Developers can see through this sort of bullshit.

"What can I do to unblock you and help you achieve your full potential?" is just a passive-aggressive way of saying you are unhappy with their performance.

Instead of this patronizing crap, how about the 1:1 goes like this: "How have you been? How is everything going for you and for the team?" and then just fucking listen?


This is a rehashing of Taylor's time and movement atrocity. Some people really want to have a production line of developers hammering away boxes of value then can capitalize on, but developing software is the process of learning about a domain.

I'll say it again: software developers assist organizational learning. They don't produce things.


This comment highlights another facet of why software is an art less so a repeatable science; ignorance of what has come before and the absence of a widely accepted body of knowledge on how to do the thing. This author seems to legitimately believe they’re on to something when in fact they’re just rehashing ideas from the past.


> an art less so a repeatable science

Which is what all those factory jobs used to be seen as, too. Much as I dislike Taylor, that's the attitude he was fighting against and he showed it was untrue. Same independently with Ford.

> just rehashing ideas from the past

Back atcha!

So here we are with two entrenched groups of people who "just know" that they're correct but are unable to prove it to one another. What's next?

Whenever I'm presented with a stark dichotomy, I assume there are other branches that people are ignoring.


Ha the burden of proof is on those who think software should be a factory side, because it hasn’t worked for software yet, after many years, a lot of MBAs and a lot of snake oil.


Accenture, EPAM, IBM, etc. beg to differ.

Obviously (!) it's a bit of both, and mostly it's just like any other job nowadays. Full of its own mysticism, a ton of idiosyncrasies (but everyone has their own interpretation of which parts are exactly constitute the bad ones or the good ones), a huge ecosystem full of variety across many spatial and social dimensions, from code for microcontrollers for 1 dollar toys and fire and forget missile controller code to hyperscale web search engines and ChatGPT, GFW of China, and so on.

Just as every skyscraper, bridge, factory looks similar they are still unique. The sites, the soil, the permitting environment, the people involved almost always result in a similar yet unique mix.

And some similarities can be exploited, standardized, homogenized and treated as uniform or even virtually identical parts. From nuts and bolts to battery manager chips and k8s APIs and whatnot. But some similarities hide the classic devil in their details.

Of course the whole "industry" is in so much flux that it's prone to super embarrassing category errors (picking/selling the wrong tool, wrong platform, wrong experts) that end up costing a lot of money, lead to classic project failure modes (angry client, resentment, death marches, waste of expertise, crisis management meetings, sunk cost fallacies and aborted projects).

This regularly happens in many other jobs too. Again, the more megaprojectish something the more it'll go wrong like almost all megaprojectish things. ( https://en.wikipedia.org/wiki/Unfinished_building ... https://medium.com/@interestingshit/the-8-tallest-abandoned-... )

There are likely very few iron laws of project management, but the overhead due to impedance mismatch between teams, members, and requirements is probably one of them. It simply follows from this that any project that has either new teams or requirements is gambling on this, and as long as folks (up and down the hierarchy) are not up to speed on the domain they'll continue to roll the dice. And depending on the situation and luck we sometimes see mighty implosions (healthcare.gov, cyberpunk 2077, google stadia, and https://en.wikipedia.org/wiki/List_of_failed_and_overbudget_... ) and sometimes it seems like smooth sailing.


Sure it can be done. Just like strip mining, and a fossil fuel based economy, and mass poisoning of ecosystems for mono culture farming. Yes you can build software factories. The point is not that it doesn't exist or it's impossible. The point is, it is a way to exploit people and cause suffering for profit.

Software is codification of knowledge about domain and business process. If you wanna endorse and foster some form or another of cajoling it into making overtly complicated products for a boost on quarter revenues, we're just fundamentally of different world views.


I simply pointed out that for many tasks it "works". Churning out React microsites and mobile apps, one after the other is what many creative agencies do. Notice that these are very constrained parts of the ecosystem (that's why I wrote a wall of text, to try to make the point that not all software is sacred codification of sprawling byzantine never-ending-fractals of business processes and human dreams).

I endorse healthy workplaces, hobbyist endeavors, coding challenges, navigating the murky waters of customer-supplier relationship with integrity, and absolutely despise how awful they are in many-many-many cases, and yes, it's mostly because of the absolutely fucked up incentives, like squeezing short-term revenue.


Once upon a time I bought into velocity arguments, I wanted to be fast, I didn't like working on slow teams. Eventually I landed up in domains which are intrinsically slow. On my current team, an engineer might only write ~10 CRs a year and no one cares, about 1 in 4 of those CRs could arguably be patented and each will be used by 10s of thousands of enterprise customers.

More domains than you would expect benefit from highly innovative work, and get less benefit from simply writing code as fast as possible.


> Some people really want to have a production line of developers hammering away boxes of value then can capitalize on,

Infoquake/Jump 225 series had an amazing fun-in-a-dystopian-way visions of this Taylor-ian model of programmers percussively hammering away on code.


Oy. I read this exact same part of the post and my head tilted sideways as I tried to figure out if this was satire or not.

Velocity is useful as a team measure, for the team to take on the appropriate amount of work for sprint. It is a measure to assist them predictably delivering work requested by their stakeholders.

Using as a statistic to be improved by an individual? I don't even.


Sprints are stupid. Treat the developers as professionals. Stake holders should be encouraged to request whatever work needs to be done to execute on the business’ needs. They should then work with the engineers to prioritize that work. Then, they should sit back and wait for the prioritized features to roll in. Constant communication should be maintained over blockers, faulty assumptions, unforeseen circumstances etc. but the stakeholders should assume engineering is doing their best to deliver as fast as possible while maintaining standards. In this environment, over time, velocity will shake out pretty accurately and the stakeholders will be better able to make longer term projections.

TLDR, Kanban.


> And every two weeks during my 1:1 discussions with each engineer...

> What can I do to unblock you and help you achieve your full potential?

We're humans not machines. Is everyone really that consistent? So if you did more the last 2 weeks and did less these 2 weeks, are you "blocked"?

It's great to have stats, but most of the time it's measured and used wrong by management.

How does velocity help a more senior engineer? Do you add in the number of times you've helped a junior or another team? Is that a blocker now? Are you going to unblock me by killing off the others!?

Why do I have to completely finish a task end to end before working on another 1? I'm not blocked, but just don't feel like doing this part for now. Is that fine? Clearly not!

It ignores all the human aspects of things.


I suspect that people like this don't actually care how productive their emoloyees are. That's just the justification provided for what they also probably understand is micromanagement. For whatever reason they have trust issues and they wrap it up in paragraphs of bullshit that, to them, sounds like proper validation for their behavior, but these people are toxic and should be avoided at all costs.


I guess I'm unfamiliar with what a velocity chart measures, but more generally speaking velocity cant just keep increasing. I think you should expect it to be relatively steady.


I use velocity to answer a very simple question and believe anything beyond this is wishful thinking. Is the team getting better over time estimating the effort to complete desired work?

The author here is charting velocity over time (down to the indivual developer, which is even worse) as some sort of work output proxy measure. This is a really big mistake. The entire premise for estimating stories in the first place is because we agree time is limited, so scope must be the variable. So you estimate stories, then you fit them into a fixed time period, then you execute and review the period. Did you get done what you planned? Probably not, why? I'll bet something turned out to be more work than you originally thought, or maybe you were blocked by someone else, maybe not even in the same team or even department. How did this period compare to previous periods? Is the planned/actual getting better or worse? Why?

As a manager I hope for steady velocity; it means the team is getting good at predicting the effort for work, probably understands what they're doing and allows you to make some plans for the future. People don't change the way the author's week-to-week velocity chart does, so all that shows is that they're still shitty at estimating stories.

One take-away that should be called out explicitly: velocity is a team-specific metric. Just as you can't divide it onto individuals, you can't compare it across teams either. Whenever you do either of these you're guilty of trying to inappropriately use it as a false proxy for performance. Please don't.


Velocity is based on calculating exact numbers from wild ass guesses. Estimating story points is not an exact science; implementing things you've never done before adds more variability; pressure to go faster creates mistakes that take time to repair; then add everyone on the team up and call it team velocity. The average of 100 coin flips is likely close to 50% heads, the average time to drive across the country is unlikely to converge on anything useful.


Velocity is a number used in software planning divination. Positive velocity is seen as a beneficial sign, bestowing good fortune on a project. Flat or declining velocity is an ill portent, prophesying schedule delays. The measure is used by management similarly to how craps players plan their bets on the statistics of previous dice rolls.


Agreed. There should be some uptick as a new employee gains experience, but eventually things should more or less level off.


"What can I do to unblock you and help you achieve your full potential?"

This also assumes that the manager isn't the blocker. Replying "Do your job better" probably wouldn't go down very well.


Sometimes the manager is the blocker and sometimes you just have to tell them. "Do your job better" probably won't go down well, but asking for clarification on issues/tasks you need...clarified usually isn't a problem.

Sometimes you do have to help managers help you, and that's fine. But better for the IC if the IC brings it up before it's something showing up on a velocity chart...


Definitely, those are quittin words.


if a manager brought up my "personal velocity chart" in a 1:1 unironically I'd quit on the spot


> “How have you been? How is everything going for you and for the team?" and then just fucking listen?

Because most people are just going to say, “Fine” and try to not rock the boat. If their manager is passive they’ll be passive back. At some point the manager has to tell the report that things aren’t going well.


“Well for the last 2 weeks I’ve been sort of coasting just cuz I’m in a lull, for whatever reason”


Maybe this article is supposed to be satire.


> Maybe this article is supposed to be satire.

Maybe life is supposed to be satire.

The fact is many developers are treated like factory workers except they expect us to fill in the gaps.


how about

What can I do for you?


It started well until you notice that it is again someone trying to patronize developers in order to push his shitty agile practices.

The company favoring big impact project does not have any relation with a day to day agile methodology to control a dev.

   "I would also pull up that individual’s personal velocity chart and use that to guide our performance"
Seriously? Nothing more harmful than being micro managed by someone that does not bring value to the table.


This was my thought exactly. Author talks about Goodheart’s law and how it is bad for the team, but then somehow their concept of “velocity” is not an example of the said flawed logic?


... suddenly every task is 5+ points, velocity will be great!


If a manager started hitting me up about "reduced velocity", as if they were seeking some kind of justification from me, I would consider that manager inexperienced in software development and unfit to lead a team.


Yeah. Stuff like that quote is how workplace violence starts. If you’re a manager pulling this stuff, I hope you’re prepared to defend yourself when there’s nobody around to save you.


This is just terrible observation/philospophy/advice on so many levels. The idea you can apply the statistics used in an unambigous game like baseball to software development, even the idea they work in baseball beyond one example, that velocity is the metric that somehow counters all the issues with every other metric, that velocity can be attributed to a single developer... the list goes on.

Using a 1-5 scale for effort estimation should be a huge RED flag. It shows the author does not understand complexity and required effort do not scale in a linear way.

>> Break down large tasks into smaller subtasks, each of which can be easily scored using the above benchmarks.

...except it's the breaking down which is the hard part; this is not easy. Then adding all the sub components back up? This assumes there's no cost or effort; it's like saying lego kits assemble themselves.

>> every two weeks during my 1:1 discussions with each engineer, I would also pull up that individual’s personal velocity chart and use that to guide our performance discussion.

This is the definition of turning a 1:1 into a status report. The author would be better served by figuring out how to actually run a 1:1 rather than build a system where "Our methods certainly aren’t perfect and their flaws are obvious"

>> Velocity can then be quantified at both the individual and team level, by calculating at the end of each week the number of points that were completed in that week

>> Because the above methods are so widespread...

No, this is not a widespread method, and totally flawed premise. I've got news for the author: velocity doesn't measure progress, and it's not some sort of proxy for how much stuff Developer A finished vs. Developer B. At its best it shows if the team is getting better at scoping stories over time. At its worst you get garbage like this.


Even his scoring is bad. In his view changing placement of 5 buttons is the same effort as creating a Reusable “customer-create-or-lookup” UI component.

Managers will quickly game this by making a tons of useless small changes of button positions as this will give the manager a lot more velocity points than any real progress on the project.


This is all pure bullshit. I’m sorry to be blunt, but this bullshit is harmful and somewhat compelling, so needs to be called out.

> …to challenge the team to scale new summits in the coming week

> … If their chart is on an upward trend, I would congratulate them on a job well done.

Let’s use some basic logic here. If an engineer was working hard and smart last week and the week before, you’d want their chart to be flat, not going up. Or to put it another way, if you have team members whose chart keeps going up, what does that mean? Have they been sandbagging all along, and are gradually ramping up effort? Are they learning to game your system? These are not positive things.

In one part we have:

> if their chart is on a downward trend or significantly lagging behind their teammates

And in another we have:

> you should explicitly avoid comparing them against one another.

So don’t say you’re comparing them against each other, but definitely compare them against each other. Guess what? Sooner or later people realize how you’re BS’ing them, and how they just think you’re duplicitous.

The real way to manage teams is to (1) ask them for what you want; (2) listen to what they say in response and take it seriously (BTW, if something they say doesn’t make sense to you, it’s probably you who isn’t getting it — keep working at figuring it out).

You don’t need, and shouldn’t use, any numbers at the team level inside the team. As companies get larger numbers are necessary, but above the team level. (As a manager in a multi-team environment, you are going to need to play the numbers game — that’s going to be part of your job.)


> You don’t need, and shouldn’t use, any numbers at the team level inside the team.

Hm. Well, using a calibrated estimation (story points) is very useful on the long run. Mixing up its use as a descriptive predictive tool with a normative enforcement framework will lead to having a bad time :/


> And every two weeks during my 1:1 discussions with each engineer, I would also pull up that individual’s personal velocity chart and use that to guide our performance discussion.

I'd manage the project and people differently, such that I don't think that interaction would ever take place.

(If I'm confronting an employee with a BS-process metric, that probably means that evil lizard people have seized control of the company, they'd directed me to make the employee quit, and when I refused, they kidnapped my family. The employee, who knows I would never do this willingly, would immediately deduce that evil lizard people had taken my family, and would quickly assemble the rest of our team, for hostage rescue.)


Remember that people have shittier jobs than you.

If you’re a low dollar contractor on a work visa making $25/hr to sling J2EE or COBOL for the Arkansas welfare department, that’s what it’s like.

If you don’t play the game, you stand to lose a lot.


Good point. I've seen some crappy situations, and I know there's all sorts of innovations in crappiness that different people have to endure.

Let's say I'm in the crappy scenario from TFA, and I have to be able to report the employee velocity metrics to upper management. I can still be honest with the employee about it.

Maybe one conversation would go like this: "You and the rest of the team are all doing great work together. There's a process thing I've been asked to do, which I wanted to get your input on. It's individual velocity metrics, and pressure to have the charts trend like so. Thoughts? ... Understood, and we're going to have to see how this works, and give feedback. For now, ideas on how we can get metrics trending in the desired way, honestly, and without significantly compromising our work? ... Are you OK doing that extra process? ... Will it save your time to offload the Jira part to me, and you just tell me the numbers? ..."


Honestly, that’s worse. If you work for assholes, pretending to be a nice guy is worse than just being an asshole.

I say “pretend” because no matter your intentions, you’re a straw boss, and eventually you’ll toe the line or separate. Remember the supervisor is stuck there too.


Of course I'd leave eventually, if the evil lizard people situation can't be improved. But I disagree that continuing to be a good colleague/leader (not "nice") makes the situation worse.

In that example, seems like the employee was getting the most accurate available information about what the situation was.

If I was part of a solid team, I wouldn't know when to decide "Well, we've been invaded by evil lizard people, so time to start being jerks." I'd still be all about supporting the team and its work.

Besides doing our work being the default, I'd keep in mind that some team members might not be able to flee the evil lizard people. If I went all jerk-mode, that would just compound the negatives of the overall lizard-people environment, and the consequent drop in team effectiveness might also increase risk to the livelihoods of the people who can't leave.


This is the obvious answer.

If I was your employee I'd be suiting up in tactical gear and buying business-suit-piercing rounds.


I give the author full points for thinking through the problems and trying to mitigate the flaws, clearly he has significant experience and good intent.

At the end of the day though, his obsession with quantifying dev performance is doomed to failure. Goodharts Law can not be routed around by adding more metrics to capture all eng considerations. This can only work in a sanitized environment with low expectations and homogenous feature requests. In fast growing tech companies, there is far too much chaos and change for anything like this to approach an objective measure of what activity is producing value.

What I’ve learned over my decades a TL, EM, Director and CTO is that team performance has a human chemistry aspect to it where you need certain traits present, including a healthy dose of intrinsic motivation to do good work, and enough judgement on what that means in relationship to both short and long term business needs. Ultimately as a manager your only option to scale is to empower individuals as much as possible and relentlessly pursue and elevate those with the judgement and maturity to have more authority. Yes, it’s subjective, but there’s no faster way to kill the motivation of your top people than to reduce the output of their contextual reasoning to a metric. You’ve killed the golden goose while pursuing your control fantasy.


Matches my thoughts, in particular I want to discuss the following quote:

> It can’t be that you want your org to run without numbers. And it can’t be that you eschew quantitative goals forever!

Metrics are used by experts to enhance their ability to reason about a system. You should use metrics, you should not rely on metrics. Metrics don't mean anything onto themselves. Given the depth that the author is thinking through problems with them it seems very likely that he is using metrics in this manner. But once that intuition of how the team is doing has been accomplished, they have done their job.

The issue in this article is less that it describes a good system, but more that without those actual insights and ability to tweak them as Goodhart comes into play, giving out this system in the form of this article is harmful to anyone who tries to use it who isn't an expert already. Anyone who does not understand how to manage a team and build software who is using metrics to decide what to do without attempting to learn the underlying dynamics is focusing on the wrong thing.

Side note: I'm really curious how often he puts out tasks with an essential complexity of 0 with a high accidental complexity. I'd imagine in any decent team that should be a decent number of tasks. In the ones that track metrics sloppily, a majority of them.


> And every two weeks during my 1:1 discussions with each engineer, I would also pull up that individual’s personal velocity chart (...) And if their chart is on a downward trend or significantly lagging behind their teammates, I would ask them what I can do to unblock them and help them achieve their full potential

> In fact, when discussing velocity metrics in 1:1 conversations, you should explicitly avoid comparing them against one another

These sentences are in 2 subsequent paragraphs. Compare people against each other, but you should explicitly avoid comparing them against one another. Sure thing.

> Ultimately, using lines of code, commit counts, or pull requests, to quantify engineering performance is a fool’s errand. All it does is create a culture where dishonest people write bad code to get ahead, and those with integrity are penalized and eventually quit in frustration.

But somehow velocity, which is an abstract, imprecise, and very error-prone measurement should be used as a primary metric for both team- and individual-based performance?

This article is such a mixed bag. There are great points like "don't estimate time", but then the author throws things like the quotes above. It feels like one of these "you're so close to getting it right" situations.

Also, as another commenter here mentioned – this can be gamified, because 5-point complex new feature is surely more time consuming and difficult than 5x1-point cosmetic changes. Hence, everyone should aim to take as many small tasks as possible in order to have higher individual velocity than other team members.


I don't know if the author intentionally omits it or failed to think about it, but sabermetrics (moneyball) is possible because literally everything a baseball player does is tracked. I can't say how players actually feel about that, but their job is to perform in front of millions of people and they're being paid millions of dollars per year (often 10s of millions) to deal with it. White collar workers have no incentive to put up with that kind of crap, especially not ones in high demand like SWE's.


I've managed large teams of engineers and I've been an individual contributor for years at a time. My take, simply put, is that working with colleagues like the author has never been anything but exhausting and a drain on team morale.


I had a manager who was obsessed with "velocity" and I spent 4 hours per week on time estimates. None of it was accurate except tasks like tiny CSS changes. Yeah, if you want to reduce morale, force everyone to waste half a day per week on pointless BS.


And they never include the time to implement a process in their analysis of whether or not the process has a benefit to cost ratio greater than one. It’s always just assumed to be true.


This is a horrible article written by someone I would not want to work for . The reality is much of the work give to developers is unorganized and unrefined. Trying to build an objective system around a shaky system is just exploitive. It also encourages finger pointing when velocity shrinks.

Are the business analyst going to fix bugs when the stories are wrong ?

The only real metric that matters is is the customer happy with the progress. It’s a team sport, and focusing on the devs alone is the wrong approach.


To be fair, the customer is both writing the tickets and doing the scoring here.


Obviously in this system the winning move is to take all the low-point efforts. We all know that 5 "minor cosmetic change" (1 point) and "small functional change like adding a new field to an existing form" (2 points) are MUCH, MUCH less effort than 1 "New feature with some additional complications. Eg: Reusable “customer-create-or-lookup” UI component". This new feature, in most/all stacks, should be valued at at least 50 points.

This assessment even ignores the other strategies a developer might follow like "minimizing regret". Failing a 1 point effort in 1h has essentially no consequences. Failing a 1-month 50 point effort ... do that twice and you're fired.

This rewards dumbed down, no-risk development. I've seen many teams work like this. Don't rock the boat, look busy, get promoted to management. Spend your time talking about looking busy with all the other ex-development managers who do the same.

Managers always come up with the next system that doesn't require them being the most knowledgeable person when it comes to what they're doing. I've never seen it keep working a significant amount of time.


What we need is a betting system. Each engineer will do a hidden bet where they'll bet the least amount of points they are willing to work on for a given task. The engineer with least points will get the task. It will be done until all engineer's capacity for the sprint is supposedly filled.

I'm kidding of course, but it's a fun thought.


It's a great framework. Unfortunately it applies only to spherical developers in a software vacuum...


Everything about this is toxic. If the author really has been a manager in the past, I'd be willing to bet their subordinates thought of them as a moron. The type you "yessir", "sounds good sir", "right away sir", until they stop talking.


The article is not about anything related to Moneyball. That writeup would have been about how to hire people to help your org despite them being overlooked by everyone else. I was looking forward to that . . . then I read the article.

It's actually about management by metrics. The kind of Taylorite misapplication of story points that is standard in the industry even though it's repeatedly shown to clearly not work.


> Suppose ... you learn to triple the estimates given to you by engineers. However, ... he decides to triple all his time estimates as well. Now all of a sudden, you have inadvertently overestimated by a whopping 300%.

Is talking to the engineers an option here? This scenario sounds like a symptom of dysfunction. How would this happen with neither party talking about it with the other? What 'management' is being applied here if this can happen without being detected immediately?

This whole article seems to give a lot of credence to story points. And story points are a good idea. But they aren't a silver bullet for managing a software team. In fact, they aren't even a bullet. Talk to the engineer, ask what they are going to do. Maybe ask some questions about the bits that they don't seem to have thought about too hard.

Since there is nothing else that can be done, doing that must be enough. The story points will keep that process organised.


Well. Software development in the corporate world is labour intense. Its not like the field had become exponentially more productive over the last 30 years. Building hardware has. Building cars has. Software has not.

So it's not like we as a field is very mature. We might think we are special.

Since management has no idea, because good management is scarcere than good Software developers, they so to its labour force that they would do to another labour force.

They measure output without validating outcome. Even worse they still belive more output equals better outcome. Put in another way - more people churns out more. Industrial thinking. Doesn't work in software.

So this is not a software development issue. Its an organizational one, with its underlying communication structures being very much a problem.

We have all heard how well 20 people can outperform 200. Or 2000. Or a whole company.

It's Fred Brooks 101.


Nice article.

However, the relationship is a bit more of a 2-way street than the author admits to. The mice in the maze are studying the scientist too.

Meaning, such a manager would have a difficult time managing devs that know what tricks the manager is using, since the metrics are now targets.

Sandbagging estimates, producing verbose and pretty code, arguing against requirements, playing up requirements, etc. There are a lot of ways to make the metrics/targets play into the favor of the dev.

Though a good starting place, the article spends too little time on the most important part of the relationship: Trust. Devs and managers are people. If you go to the mat for your people, and they know it, then they'll most likely go to the mat for you too. No need to hide behind these metrics/targets.


The blog’s name is “Software The Hard Way” and this post lives up to that name


I’ve led a couple software teams so I’d like to think I have a bit of perspective here. The author of this article means well but this entire line of thinking is flawed. For one, if you start using your story points for velocity tracking, people are gonna get wise to that pretty fast and start gaming things. That 5 point story? Looks like an 8 pointer to me. That quick task that needs to get done? Fuck you. Point it first and make it a 5 just in case. Oh my story is not fully tested? Fuck you. Merge it. Last day of the sprint. You’ll never get an honest accounting of work output this way. The incentive structure is totally wrong. If velocity is off, it’s YOUR fault as a leader. Not the teams.

People are not CI jobs. You have to listen. Pay attention. Your job isn’t to make sure they’re productive by putting together these bullshit metrics. It’s to make them more productive by removing blockers and being a meat shield for misguided stuff like this.


I think he kind of covers that by having first pass estimates done by the TL and having a rubric for complexity.

Granted that metrics are dangerous, this seemed like a reasonable stab at solving some of the problems (assuming it was done carefully).

Of course, it's no substitute for hiring the right people and having a less anxious upper management chain.


Estimation and story points are a planning tool. You use them as a way to plot out your road map and prioritize initiatives. The minute you tie them to employee performance, you've obviated them for that purpose. Now the only thing people will care about (including your TL's) is making sure they keep their "score" inflated. Like I said, perverse incentive structure.


Sure, if you're just churning out the same shit week-in-week-out (new button, new field, new view, new table, new query, etc), then measuring "complexity" becomes a matter of looking up the task in a list. But if you're doing real software engineering, then you won't be able to make a consistent, unbiased measure.


> But if you're doing real software engineering

I'd argue the preceding thing you described is real software engineering. Decomposing hard ideas into a lot of super boring practical things with routine solutions == ???.


Most hard ideas can't be practically decomposed. That's why they're hard. We don't have routine solutions for the hard stuff.

Also how do you quantify tasks? If one dev hammers out 20 widgets in a day is that comparable to another dev who spent all day hunting down a bug or coming up with an optimization that improved the performance of the app?


>> Most hard ideas can't be practically decomposed.

Yes! This is the crux of the problem. If a hard idea CAN be decomposed, or even a non-novel but complex need, it's the decomposition that's the hard work. It's "how to draw an owl" all over again.


But having those points systems there will also promote getting this certain task done asap, without consideration for future ease of development or maintainability.

E.g. you could build this new form field for 2 story points, but you could put in 4 story points, to make it a 1 story point task in the future.


I agree many of the criticisms in other comments here, but the author does make at least one good point that I have not come across elsewhere, around whether and how to factor "accidental complexity" (which is mostly a proxy for tech debt here) into your velocity estimates.

> And conversely, if the team is picking overly complicated tech stacks, over-engineered designs, piling on tons of tech debt, and rubber-stamping all pull-requests, we should expect to see the velocity drop. And that will not happen if we score tasks based on their accidental complexity.

As much as we (as developers) may not like it, our performance is (sometimes) going to be measured, and it is often going to be done under the guise complexity points, and this part of the argument does seem at least like an improvement to the way it is sometimes conducted.


Given this article over-explains so much, I can only assume software developers are not the target audience. The idea that a non-software developer might take this advice and run with it is a little concerning.


Question: Has anyone thought of measuring velocity, performance and outcomes of management?

Why do only engineers need to be tracked and measured when reality is that systemic issues caused by managers have more of a negative impact?


I did not read the article, but how could you possible quantify that? No matter what metric you use some dev will be able to max out their stats while utterly fucking up the entire codebase and design.


>"all the other downsides of assessing performance on the basis of subjective feelings"

Wonder where I can get some story points that aren't based on subjective feelings.


There was recently an article about purchasing hackernews likes. This seems like a prime candidate considering how bad the blog is.


Authors bio is exactly what is wrong with software development today. Too many people who've made money at FANG companies who now think they are experts in the field because they got lucky and was hired at a time when their stock price and options accelerated based on NOTHING they did...got wealthy and have convinced themselves (and others in the industry) that they actually should be thought leaders. Insane shit going on right now...

Bottom line: 10 years of non-coding experience in the industry (Sun & Intel), then about 5 years experience (assuming) development/coding and he's now a "serial entrepreneur" offering best practices advice for code reviews, architectural reviews... no mention of any product, technology or coding (where's the public Github account with demonstrable experience?) that he's actually delivered or maintained. I see a guy with 15 years of experience that got lucky with his options and is blathering on to boost his LinkedIn profile.

One thing for certain, he titled his article as something provocative to get the click-bait going and using "Moneyball" certainly caught my eye and made me curious. But after reading this article, it's fraught with problems and demonstrates the lack of experience and using very limited anecdotal evidence to apply to a field that's complex and not a single article solution, which I have to say, with less than 5 years of coding and development experience, he shouldn't be considered an "expert" that gives advice on this process -- he should still be listening to people and understanding how the SDLC process works because he's clearly missed that course at Standford -- He clearly didn't pay attention to Steven Blank...

Look, I know people with 20,30 (including me) years of experience in this field that would read this article and would point out, what you're reading is not only what inexperience is, but also what someone who's been too involved in the money and investment side of the business sees. If I had a manager in my team present these ideas to me and how they wanted to operate with 1:1's for example, I'd get them out of the company because they would be creating a culture of pointing fingers.

Also, as a side note, when I saw the title, I immediately assumed "outsourcing" article because the premise of Moneyball (Bill Bean / Bill James theory) is to use cheaper labor to get better results by doing things that can still get performance and wins without having to play the game the way in which the rest of the teams were, completely undermining the norms and trying to get better performance with less. This is a poorly titled article, the premise has nothing to do with the Bill James theory.

Lastly, I don't want to be totally negative,he had one good point in the article. Using time estimates for story pointing is a bad thing. His example of measuring complexity was a bit too vague and nuanced, but it was a better example of estimating to get to a valid burn down. But a broken clock is correct twice a day...


I find this sort of culture fucking despicable




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: