An Attempt at Engineering Benchmarks
Jun 17, 2022 2:01 pm
So there is a community I'm a part of that has daily topic discussions around engineering leadership. Yesterday they posted their own internal engineering benchmark studies and I thought I'd share it with you.
I took a pretty good look at it and thought I'd share my reaction. First, this is very heavily focused on the development side of things which I think can be a bit risky. For example, these benchmarks give no indication of the health of their production systems or product.
Next, I think it also assumes an optimum series of steps that I'd also disagree with. I hope you're sitting down for this, but the pull-request metric is one that I have a problem with because you can abandon code reviews and have higher quality.
The rework metric is fascinating to me because it's the only one that speaks to quality and on the one hand, is quite elegant, and on the other is very unbalanced. The metric captures how regularly you work in the same code. So if you make a lot of bugs, you'd be in the same code, or if you write code with lots of tech-debt you'd be in the same code.
But here's the issue, how many groups have you seen de-prioritize bugs and tech-debt?
Without a balancing lagging metric, rework as a metric might be too difficult to make sense of. I'd consider balancing it with change failure rate.
Enough criticism though, lets's take a step back and look at the bands and where they claim elite and low-performing. I do think this is reasonable and worth comparing to our own groups. Too many groups, by any way you look at it, their coding work takes 10-14 days, is full of bugs, spends days in code review, is poorly planned or reactionary, and might not get deployed for weeks or months.
What I hope looking at these numbers does, is help people remember it doesn't have to be that way, and you don't have to game the system either. There are a few relatively simple changes you can introduce to teams to move towards the elite band.
One of the questions in the discussion was, "What about you, can you be an elite team," and I responded that excluding the release process, I can get a team to elite in under 3 months.
So, let me turn the question back to you. Can you have an elite team? What is one change you think would make a positive difference?
PS: If you want to talk about how I make teams that hit that elite band, set up some time!