Data behind high-functioning engineering organizations [pdf]
datocms-assets.com
datocms-assets.com
We have done the same. The great thing about it is locating decision makers and customer insight close to developers. The bad thing is that what is perceived to be a "product" can be very different from the natural division of technical work to be done.
I sometimes joke that our Head of Product ended up involuntarily being our Chief Architect. The master plan of the tech has to be divided along these fault lines between Product A and Product B.
In Sales these may be sold as separate products. But the reality is that 80% of functio ality is shared between them, and these 80% do not get a good organization developed around it, since the A vs B split is at the core of the company chart.
On the one hand, it's the obvious solution. On the other hand, that would move the developers of X further away from the customers of A and B.
What other approaches to shared-something cross functional product teams are there?
It's like once you reach a certain level of management mirrors don't exist and problems only exist elsewhere in the org.
I dont like the idea of ruthless efficiency by tracking metrics similar to a sales funnel. It gives me the mental image of everyone competing and inflating numbers or gaming the system.
It was really frustrating because more time was spent about how work should be coded than the work itself.
Quality didn't end up mattering because there was no accountability for actually delivering good software because following iconiq's standards was considered good enough.
It was weird because management would routinely be surprised that our metrics were good but reality was not. As a grunt, it was frustrating because there was no room for productivity improvements because those were to only come from the top.
The big difference is the lack of accountability. AFAIK if a developer misses shipping during a sprint, they’ll just add it to the next sprint. If a salesperson does this, after 2 quarters of missing your quota, you’re fired. Doesn’t matter if you had monster quarters before that, if you’re not hitting your numbers, GTFO.
I think this is because sales have very clear metrics that everyone can agree upon: revenue, number of demos, cold outreach, etc. We’ve been tracking these types of metrics in cuneiform. Comp sci wasn’t a thing until the 1960s. It’s still too new and everyone has an opinion on what metrics to focus on without angering a developer for micromanaging them. This is where the friction lies; until that’s fixed, you will not have a cohesive team. I hope that AI takes over and we don’t need devs or salespeople anymore.
context: I’m a sales guy that sold software that tracks “engineering performance” to VPs of Eng and CTOs depending on the size of your company. It was shocking to see the level of variance in measuring performance metrics for eng teams.
As it is such a meat grinder I can only hope it gets replaced with AI as I’ve seen many in sales not feeling well.
Trying to imprint sales principles on engineering or any other knowledge profession is what leads to horrible organizations filled with unhealthy practices and people.
Can we identify a good meeting and "turn up the good"? Much harder, and requires actual leadership.
The push for Lean (by way of Agile) has been more pronounced within IT/tech than any other non-manufacturing industry that I know. We’ve been collecting metrics for as long as I can remember, and reported them.
What is interesting here is that studies out there on knowledge work indicate that most of it is wasteful.
What you need to have for a team to perform is clarity, relevant competency and freedom to do the work - all of which are managements real job to put in place. This can be hard to grasp coming from sales; the value of flow, the detrimental effect deadlines and hard estimates have on team performance.
The individual team need to identify what they can do to become better and they should measure this. But not in any way should we put this relative to other teams metrics.
For example: one team might frequently end up in wait state due to a stakeholder or customer, when touching specific parts of the code/system. This usually leads to the team picking up new work while waiting, increasing WIP and context switching.
Another team have to deal with a lot of legacy code within their domain, that doesn’t build or test well. This have to be prioritized if this is important software or else this team will be a hog for eternity.
Measuring these things is important, and most definitely possible - you just have to understand the profession.
They need to be treated differently as your driver probably differs by miles from what drives my team of system developers. For someone in sales, maybe with compensation in the form of commission you have clear metrics every month. I can have guys sit around and think for a couple of months with the benefit of us staying agile and malleable two years from now. This is where the disciplines differ by a lot and must be treated and measured differently.
What?
For an Opportunity, it's usually pretty clear and very very easy to measure, how much the company gains from that and when.
How do you measure the gains from a PR? If you can't than literally everything else is completely meaningless. Don't forget that PRs can also be net negative to the company.
One of the big problems in most sales organisations I've seen is that they think that the base revenue is all that matters.
Did I get it right that you think this is the right approach for dealing with your salespeople, that it improves long-term productivity of the organisation?
There are two major issues with "missing shipping"
1. More often than not the feature or the dev that holds thing back. It's the unknown, or didn't think of side effects. Like walking the coast of California in 2 weeks. If you don't hit a river or bit of beach that's been eroded away, or a cliff, you're good.
2. As you said metric take a while to figure out. Lets say we give Comp Sci a 10th of the time to figure out metrics as we've had at sales. So.. we should be all set in say 500 years :)
First question should be: what does your data say about how much it cost to have an agile / data driven process compared to not having one? :)
It's probably quite helpful if you do it yourself. But yeah - definitely something that has historically been easy to game.
Unless, of course, the measure was good to begin with - such as cash or bars of gold. The problem with most measurable measures in software is they are gameable proxy-non-grata.
The whole thing depends on being able to compute the net present value of a patch on a given code base. Then pay the developer/team some percentage of this. What a beautiful reality that would be for developers and businesses alike. To bad there is no conceivable way to do it. I'd guess computing this is 1E12X harder than protein folding.
IMHO this is a bad measure, its how you end up poluting oand poisoning etc. fro profit no?
It highlights missing rules/regulations
Unfortunately, this often leads to corporate shortsightedness (e.g. "This will destroy our customer goodwill and eliminate our competitiveness in the coming decade, but it will make our quarterly revenue targets and our jobs depend on that, so we're doing it.")
Any metric you set for comparing contributions, no matter how good you think it is, WILL produce a cobra effect.
This is because metrics are a model, which by definition can't capture the entirety of reality, and so any attempt to enforce based on that model is doomed to failure.
How much would you value a maintenance task? Or a process change? A better air conditioning system? Game night to let off steam and improve morale? How do you calculate what its long term worth is from the productivity change in order to assign a present value to that contributor? How can you even know what kind of an effect it will have long term? You'd need a pretty damn sophisticated model, and even then it would still only be a model, missing many points of the reality hurtling towards you at the speed of light.
And meanwhile, the little things that improve long term prospects simply aren't done, because the metric doesn't value them. Thus, metrics, even NPV, cash, bars of gold, are bad policy enforcement vehicles.
I completely agree with you that it is probably impossible to compute (per my original comment). But at least understanding what the target is helps imo.
Sounds like an absolute dystopia.
Like, do these companies actually ship faster, have lower rates of issues, better MTTR, etc? This just says things like “there are more full stack engineers”.
At least the Puppet state of DevOps report gives you a “low, medium, high” categorization. This doesn’t seem to be describing much other than some trends they saw this year.
Of course, that way is another strawman. One of only observations with no reasoning on top.
They might suck, but they suck substantially less than anything else.
They can probably be a small, healthy org but they insist on this cloud "solution". Now their customer are leaving them and they are paying so much more for all the extra fluff.
Well deserved loss.
We are currently giving up our self hosted Redmine instance as nobody is willing to take ownership on maintenance.
We switch to Jira cloud.
Their vanilla status is bordering on Microsoft Office levels of drudgery. What on earth are you comparing it to?
What are the key takeaways or lessons here?
"How you manage your time was up to you but the spreadsheet says these 3 projects will fill 40 hours a week, if it actually takes 100 hours maybe you're bad at time management" was a pretty common attitude from managers. I didn't stay long and neither did anyone else who had even the slightest talent.
The company was a major telco in a European country, so not a small startup with growth pains but a proper enterprise org with several thousands employees.