Quote:
Originally Posted by bip!
Huge revenue can support quite the bloat in diminishing return features. Most of the functionality of those platforms was accomplished in the first fractions of the effort. Accommodating larger scopes of redundant information isn't all that impressive.
Scaling engineering teams, regardless of what kind of engineering, is extremely difficult. This is the primary accomplishment behind this - creating tools and processes that allow this many engineers to work together to create a single, extremely reliable product. Engineering at large is a social problem and one I don't think has ever been tackled at this scale outside of software engineering. Don't forget that the nature of software is that you have to keep things running and past decisions have consequences. Operating systems have to be backwards compatible and services cannot stopp running even while you're upgrading.
Quote:
I am more impressed by networks of modern road systems if you are going to set accomplishment = effort and cost.
We're talking about a large nubmer of smaller projects that didn't really have to be coordinated and maybe some inventions that had a small number of people working on it. Most of the cost I imagine also has to do with material and manual labor, not engineering work. The resulting complexity of the system at large is also fairly low. Much of the planning behind is also not engineering but economic and political in nature I'm sure.
The measure here is not "impressiveness" but "complexity" - Einsten's special relativity is impressive but very simple.
This is the kind of complexity I'm talking about
:
https://cacm.acm.org/magazines/2016/...itory/fulltext
Quote:
FWIW - The physical internet is impressive (but mainly built by engineers).
Again, the complexity involved here is fairly low - once the protocols are in place (designed by a very small number of people) - we're looking at a large number of smaller projects that didn't have to be coordinated and failures that could have easily been tolerated due to the design of the protocols.
Quote:
Software is unique that the distribution/production cost of unit n+1 is pretty much zero. Which means it can afford negligible utility features when the user base is hundreds of millions. Thus it can bloat and bloat and bloat (saturate) yet not become counterproductive - in a manner physical platforms cannot. So measuring accomplishment in man hours is very misleading for software.
I think you're really talking about something completely different - features add complexity even if they are not particularly valuable or impressive. Features require many more people to make decisions and have these decisions be coordinated in some way. And from a meta-engineering perspective, simply being able to add any value at this size without everything coming crashing down says a lot about the tools and processes that enable this coordination. My understanding is that other engineering professions are simply unable to design anything at all at this scale - they don't have the tools or processes to understand what's going on when projects reach this size. Let's not forget that the software industry provides other industries with the information management tools to understand what's going on with their own projects and these types of tools for software engineering are more advanced than what's available for other industries. On top of this, the top tech companies have internal tools for this because at that scale, commercially available tools don't even work.
This is why I find this talk of maturity preposterous coming from other fields. Managing processes is a fundamentally an information management problem that's best solved by software and it's completely absurd to believe that software companies, that literally provide all the other industries with the information management tools haven't already solved this for themselves.