Growing is hard and unicorns are expected to grow really, really fast. In the end many companies with a completely viable product end up going under just because investors thought that a million dollar company should be a billion dollar company.
Growing is hard and unicorns are expected to grow really, really fast. In the end many companies with a completely viable product end up going under just because investors thought that a million dollar company should be a billion dollar company.
At scale it tends to be worthwhile, even necessary, to engage fully with the complexity of all those "niche" aspects.
When you don't understand how something could possibly take so much effort, it's possible all the people working on it are idiots and you could do it better in a weekend. (When you spot situations like that, think of them as startup opportunities...)
It's also possible they're doing a good job hiding the complexity from you.
Everyone underestimates the complexity of systems they aren't personally familiar with. Ask the average person how many parts are in a modern automobile and they'd probably guess too low by an order of magnitude.
But it is also true that large organizations get weird when money is easily available. You get a Cambrian explosion where without selection pressure to ensure people and teams do real, useful work, everything starts to seem like a good idea.
Determining which organizational complexity is essential and which is accidental is likely the quintessential hard problem of business.
Three questions.
(1) "What would the impact on our business be if we built the best possible, state of the art feature here?"
(2) "What would the impact on our business be if we half-assed a solution in a quarter of the time?"
(3) "What would the impact on our business be if we utterly failed?"
(Usually, the different between 1 & 2 is negligible. Sometimes, between 1 & 3. Don't ask people to justify success. Ask them to justify why we should spend any more time than slightly-above-failure.)
You end up with team A who wants to add the feature, team B who thinks it's an anti-feature, team C who thinks the entire application where feature lives should be scrapped, PM D who says users can already accomplish what the feature does using existing features, UX design E who says the fact that users are still asking for the feature means all those other features must be poorly designed and we should fix those...
Ergo, standing in the present, one should do ones best to estimate future costs and decide what percent of perfection seems optimal.
In reality, when asked to self-estimate, too many teams (and especially naive PMs) select perfection as the optimal approach.
When large companies have such excess engineering power to blow, they tend to say yes to all requirements and scope creep takes over everything. So no, the engineers building the abstract framework factory are not stupid, but they should have just built the report dashboard instead of the tool to generate tool generators.
The decision to agree to a feature request starts to consider Who the feature request came from before any of the practicalities of the feature itself.
They're not idiots, and they are doing what is necessary, but the goals have moved from outward-facing market and customer concerns to inward-facing organisational-political concerns.
Every coder in a large organisation, sooner or later, gets given a task that makes no engineering sense but achieves some internal political goal.
Boeing 747 design team was 4500 engineers and they were done in 29 months.
It’s a different type of systems engineering, that’s more akin to sorcery, than to actual physics.
The hardware is, of course, limited by physics, like the speed of electrons and heat dissipation. But once you get past that, your computer system is a collection of bytes that you reassemble to form whatever it is your imagination desires.
And while the 747 is a magnificent plane, it did have the benefit of over 50 years of aviation and aeronautical science behind it, all figured out.
Whereas software is still somewhat in its infancy right now. And every few decades, it seems to revolutionize itself, as newer and faster hardware become available.
But let's say designing for scale is 100 times harder than a taxi app for just one national taxi service. Based on my 23 year career in trenches I seriously doubt that's the case, but let's be generous.
That would net us into ballpark of €60M expense. Non-negligible, but it translates into a hundred developers pulling €100k a year for 6 years, still at least an order of magnitude below Uber.
Very obviously it does not scale anywhere near linear. There has to be a severe case of diminishing returns in technical hiring.
That's better than seeing man-years go into features that get deployed. I witnessed one successful control system company spin up a team of new hotshot UI engineers, all right out of the best schools. After months of work the team "updated" the product. Withing hours the call center was hit with hundreds of "You changed the g-dam menus!! Put them back NOW!!".
The trick is to squeeze your long-term UI project in the same update as some routine security fixes. Then the clients are forced to learn the new system.
“On this page, 12% more users clicked save if the save button was green instead of blue”
That really depends on your customers and the product. In this case, control systems, incremental changes are definitely not the way to go. Imagine if your car made an incremental change to the position of the brake pedal every time you turned it on. In such situations you don't babystep. You announce the change ahead of time, provide your customers with transition training, and make the change as scheduled.
In the case of "adaptive" menus in control systems, imagine if the elevator in your building rearranged its floor buttons so that the most requested floors were always at the top. Total chaos. People learn where their button is on day one. After that ANY change is going to go badly no matter what the UI engineers say. That UI should be carved in stone for the life of the building.
Is this sarcasm? Seems like a really user-hostile attitude if not. Admittedly, my personal point-of-view is that the majority of UI updates are make-work for engineers and PMs with at best no value added, and at worst negative value created (as you experienced).
Fuck people doing this. Especially extremely radical design changes such as Twitter's and Facebook's "redesigns" that they force down the throats of their users. Or Microsoft.
No, the trick is to iteratively change the UI in a way that's easy for the user to get used to.
Those example pathologies you listed are SOP at all the mature orgs I've worked at.
What do you think differentiates a company that becomes "mature" vs one that flames out?