8 ms·
Hmmm, 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 (we
by cm277 4y ago
Hmmm, 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.
- arinlen 4y ago> Professional engineers working on buildings aren't liable for someone who decides to take a bulldozer to it to find its weakness, (...) Actually, they are. Engineers are tasked with designing safe structures taking into account a bunch of failure modes, not only those that involve safety but also usability. These failure modes are even covered in standards, and engineers who fail to design projects which are safe under these scenarios are held liable both civil and criminally.
- dchftcs 4y agoThere's a limit to these things. Residential houses are not designed to withstand machine gun fires. Or a novel chemical, or even just an uncommon but nasty one.
- ThrowawayR2 4y ago> "Residential houses are not designed to withstand machine gun fires." If machine gun fire were a daily occurrence for residential houses, they would be. Every other common occurrence that occurs to residential houses, whether it's fire hazards, snow load on the roof, earthquake protection, etc. is part of the design consideration for residential houses. The fact that software _predictably_ gets attacked when placed online is exactly what means that developers can't shrug their shoulders and pretend it's an unforeseen event.
- Semaphor 4y agoIn a way, most of my favorite pieces of software are not that. MediaMonkey 4, Ynab classic both stopped getting updates, DirectoryOpus has only been getting fixes and scripting additions for years. Yet they are my favorites and better (ynab, MM) than their successors. The service part seems more like greed than something I want (in many cases, certainty not all)
- thot_experiment 4y agoCouldn't agree more. Software COULD just solve a problem and then get out of your way, but because we're stuck in a world where MRR is king people are forced into making SaaS trash where the incentives aren't aligned to deliver what technology is capable of. Photoshop/Illustrator was less buggy years ago, and consequently I now just use ancient pirated versions. I feel zero percent bad about this, I'd buy em if I could. Same with Windows, LTSC frozen out of updates is an infinitely better experience than whatever monstrosity Microsoft is peddling these days. Total Commander has been solving the same problems the exact same way perfectly well for 20+ years. I love innovation as much as the next guy, there are constantly legitimately great advancements in software. That, however is not the same thing as a constant drive for change for changes sake. I want to pay a fair price for tools I can rely on today, not nebulous promises of future improvements that result in tools and processes being broken from time to time. It's not worth it. It's not a good trade-off. The idea that I can have something working perfectly fine and have it suddenly break the next day through no fault of my own is fucking abhorrent. I'm not here for it.
- lumost 4y agoI've written services at startups that I know were in place 10+ years later. I'd be surprised if the majority of my code was still powering them, but never the less, when you solve a hard problem well - software has quite a bit of staying power. You see similar trends in the PostgreSQL code base where critical code pieces/structures date back to 1991 in some cases. I'd doubt that a professional certification is needed for practitioners of software, but I could see merit in a certification body for software products. There are software products used in critical use cases, where the standard of practice for security, operations, or testing is insufficient for the desired use. As a client of such products, I might choose the "certified" version over the un-certified in a space where I don't believe feature velocity matters. The problem with any of this would be making a compliance regime that didn't boil down to a boring ineffective process.
- analog31 4y agoThere are also physical products that are un-engineered, such as pretty much any one-off made by a craftsman or DIY'er, but engineering is still engineering. The unique thing about software is that an unlimited number of craftsmen and DIY'ers can be brought together to make things of limitless complexity.