8 ms·
Every one of these complaints always misses the salient failure of the analogy: do you expect your bridge or your gas line or your house's electrical layout (on
by lr4444lr 4y ago
Every one of these complaints always misses the salient failure of the analogy: do you expect your bridge or your gas line or your house's electrical layout (once it's installed) to be changed every month or quarter to handle new load, produce different results, or even change its feature set? No - these things are planned for and built to do exactly and only the thing they were first designed for. Heck, you can even throw certain software into that mix like medical device firmware. The software industry is doing exactly what people want out of it: becoming highly flexible to individual business and consumer needs in sophisticated customized interactions.
Those of us who write it are trying as hard as we can to impose sensible and reusable structure on things, but the public wants constant innovation. Not the same "heat my house when I plus this in" demand they had 50 years ago that would have given us the stability to focus on standards, safety, and efficiency. We're doing the best we can.
- vishnugupta 4y agoThis is my pet peeve too. They also completely ignore the fact that humans have been building physical structures for ~10,000 years where as software industry is less than 100 year old. Give it time to mature.
- brightball 4y agoYou are 100% correct and this needs to be repeated often. There are very few things that can act as an analogy for software development. At the same time, there’s also no other industry that operates at a fraction of the speed of this one.
- cm277 4y agoHmmm, I think TFA misses the fact that software engineering, isn't really engineering any more. We don't develop code that gets deployed and stays in place (well, maybe in embedded systems, but even those are getting IoT'ed). Modern software is a service: it gets updated all the time, it's "hired to do a job" rather than perform a specific function. The latter is finite, controllable and could potentially be certified as an engineering product. The former relies on professional codes (and yes liability as well) to make sure that the service is acceptable. All that is to say that the proper metaphor isn't licensing as for civil engineering or telco networks but akin to licensing for professional services, like medicine, accounting or law. Which means different tiers of service, different expectations and yes much different compensation/service fees. But to get there we have to stop talking about 'engineering' as the correct framework. We're closer to lawyers or nurses...
- DragonStrength 4y agoIf you think of a software system as a manufacturing plant, you can make some pretty straight analogs to other engineering functions. I know plenty of engineers who work at auto plants, power plants, or the like whose jobs are much more traditionally engineering and look a lot like what a modern software job on a distributed system look like. The core business is modeled and run through the software. Things break and will need modification over time, so the engineers are always present. It's not that software is outgrowing engineering. It's that software is growing to look more like other professional engineering disciplines. The businesses we support are predominantly the professional services you list, so maybe a mental model of a professional services factory is where we're headed? You're certainly not wrong that software engineers need to be comfortable in those environments, but I suspect there's a bit of motivated reasoning among those who see our career becoming more like doctors, lawyers, and accountants, though I would love that to be the case. If anything, those professional jobs are looking more like engineering jobs over time as their own moats have been eroded. Aren't the software engineers coming along to make those professional careers look less special? I'm watching all the local dentist and optometrist offices get purchased up by chains instead of a new generation of small business owners. I'm not aware of another profession which has risen to those ranks, so I suspect their current place is merely a historical relic which is passing.
- randomdata 4y agoNot to mention that security seems to be his primary concern. Professional engineers working on buildings aren't liable for someone who decides to take a bulldozer to it to find its weakness, so it would be equally unreasonable for engineers to be liable for someone taking a 'virtual bulldozer' to software to find its weaknesses. What humans can dream up is an unknown and unpredictable quantity, which is incompatible with engineering. When it comes to software operating within known constraints, we're usually pretty good at delivering. The software in your car, for example, may be full of security holes if a human decides to attack it, but as far as working within the known environment, it is likely to work just fine and as expected. That is all we would expect of a professional engineer. If you want to stop people from driving bulldozers into your buildings, you're going to have to look beyond the engineers. That is not their area of expertise.
- skeeter2020 4y agoI understand where you are coming from, but this is not completely true. We often build physical infrastructure & buildings that need to evolve and change over time. This sometimes leads to over-building and often over-engineering but the biggest difference is we don't usually design & build software to true engineering standards. We move quick and break stuff, fix it after release, waterfall is outdated and maligned, nobody is held responsible for catastrophic failure. Most of us are NOT engineers. Even less build software as engineers.
- deleted 4y ago[deleted]
- Supermancho 4y ago> do you expect your bridge or your gas line or your house's electrical layout (once it's installed) to be changed every month or quarter to handle new load, produce different results, or even change its feature set? More than that, the reason most tech companies don't have a salaried plumber is because most tech companies don't rely on a plumber to try to increase the revenue of their core business model.
- bodge5000 4y agoReally nice to see comments like this, often HN feels like software engineers attacking other software engineers with zero empathy for the fact that they're in the exact same position.
- DragonStrength 4y agoMost engineers don't work on static systems. They work supporting things like manufacturing plants, electrical plants, and working on infrastructure which degrades and requires repairs over time. Engineers aren't only involved in the creational part. To me, the software industry is looking more like professional engineering over time and less like a science research project.
- deleted 4y ago[deleted]
- atmartins 4y agoAren't the gas and electrical lines akin to some core capabilities of the system? I have yet to find a (web project) that doesn't need auth, eventing, logging, etc. I don't expect those to change how they work frequently, just line the guts of the building. To keep with the metaphor, I DO expect to plug an appliance in, though. Or that a room could be used for another purpose. Obviously changing from an office to a commercial kitchen is a major change but if that's what somebody wants to spend their money to do... So I guess my thought is, "software engineering" and "engineering" are very broad. I actually think software challenges are not so unique. My experience has been that many people lack intuition about the software in question. Most people live in a building of some kind and if they asked for only Brawndo in the water pipes, it would be easy to convince them of how short sighted that is (or they wouldn't even ask). With software I feel like there's still some expectation of magic and zero friction just because it doesn't take a jackhammer to move a wall.
- Certhas 4y agoOkay, the analogy is not exact, and some software is genuinely different. That's fine. But what I don't understand is why you and others in this response claim that "it must be okay because people purchase it that way" is a legitimate argument in this context. The idea that the markets can figure out how to build reliable and efficient infrastructure is contrary to evidence, theory or intuition. The actors are vastly asymmetric, information is hard to get by, risks hard to evaluate and judge, many infrastructures are natural monopolies, etc... And a large part of code in companies _is_ infrastructure. In this type of context, people who would individually make shitty purchasing decisions generally support laws that support them in making better decisions (or in not having to make decisions). You do not want to evaluate whether saving 2$ on rent is worth the increased fire hazard of not having adequate fireproofing in the insulation. You sure as hell wouldn't want the company to not be liable if they just installed the cheapest shit they could find and the building does burn down.
- Digit-Al 4y ago> You sure as hell wouldn't want the company to not be liable if they just installed the cheapest shit they could find and the building does burn down. What? You mean like a company installing bad cladding that burns really easily, then refusing to take responsibility when a load of people's homes burn down and some are killed? Of course, that would never happen in the real world... ahem.
- fatbird 4y agoI agree in general, but this: the public wants constant innovation Seems less true to me than "VCs, entrepeneurs, middle management and MBAs want constant innovation", which is to say "capitalists want constant innovation". The constant churn is a sales-driven impulse to capture more of the market, and it's organizations throwing endless (and mostly pointless) change in order to move a few more units or renew a few more subscriptions. It's not the consumers who think software isn't finished, it's the people selling it. Think about Office 97 and what you do today. Has anything added to MS Office since then mattered at a wide scale?
- lr4444lr 4y agoFair enough: s/public/consumer
- thot_experiment 4y agoCorrect, the problem is capitalism and intellectual property. The capitalist system simply has no way of dealing with the fact that writing documents or spreadsheets is a thing we can more or less solve once and give to everyone for free at no additional cost. That's the reality of the situation, the problem is the idea of ownership as applied to things that can be infinitely duplicated at no cost. It's a growing disconnect between reality and the capitalist economy. I have no solution, but I know it doesn't make sense to own intangibles in the way copyright/patents/intellectual property and other bullshit like nfts are attempting to impose on a digital world the reality of which is fundamentally different from the tangible one. Creating artificial scarcity is wrong.
- musicale 4y agoCapitalists want money, and they usually do whatever makes money. In software, constant churn and superficial redesign seems to make more money than reliability, security, and core improvements. Be that as it may, Office 365/Teams are probably new since Office 97. Arguably it wasn't a Microsoft innovation per se and was a response to Google Docs/Slack/etc. but internet/cloud/web-based collaborative editing integrated with group chat, video conferencing, and document sharing are probably new features since Office 97 that are somewhat useful, even if they don't work particularly well.
- layer8 4y ago> the public wants constant innovation. Er, no. The public wants software that “just works”. Everybody hates the new normal of eternal beta, or when their familiar and working software is changed to look or function differently, more often than not also removing existing conveniences and features.
- musicale 4y agoThat's what people claim they want, but it's not how they vote with their wallets.
- dehrmann 4y agoThe other key difference is we can experimentally break the bridge during testing at almost no cost.
- patrick451 4y agoAs somebody who switched careers from construction to software development, I disagree with your criticism. Systems in a house are largely decoupled and easily extensible and modular. It's a routing affair to add a room or second floor. You can replace all the plumbing in a house without touching the electrical. You can easily upgrade an electrical service and add more circuits and outlets to an old house. The nature of stud framing makes it relatively trivial to run ethernet cable through a 70 year old home, or replace ancient single pane windows with the latest triple pane offering. You can swap out your dumb lightswitch for the latest wifi connected smart home nonsense, all without disturbing anything else in the house. I also disagree that "we're doing the best we can." We're building monstrously complex systems because it pads our resumes, not because it actually solves real problems.
- nsonha 4y ago> the public wants On what earth does "the public" wants innovations? The way it works is the tech industry has to work hard to sell innovations. Yes once the innovation is in, it creates a backward pressure for the rest of the industry. If there was a transparent way to show pros and cons of these "innovations", the public might not be very keen. In certain areas (2D UI development) it's like the food industry where there is nothing left to innovate, they still keep making new, "better" (good looking but more toxic and addictive) food to sell.
- maxerickson 4y agoThere's a SAAS I use some at work that is just a pile of shit that is designed to be marketable. Everywhere you look there are broken leaky abstractions. They are always really enthusiastic and positive though.