News for hackers. Stuff that matters.
Re:What Should We Do to Prevent Software from Failing? by jacobsenscott on Monday May 20, 2019 @07:46PM (#19966405)
Writing software is not engineering - engineering is building the same thing over and over again and you slowly learn how to do it the right way. There are incremental improvements along the way - stronger lighter materials, better tools, etc. But the folks who built the Roman aqueducts could get up to speed pretty quickly on the Golden Gate Bridge.

The principles of flight don't change. The fundamentals of building a skyscraper or a bridge don't change. There are hundreds of years of learning behind those things that are still relevant today.

Building airplanes and bridges and skyscrapers is not hard at all. People do it all the time with a high success rate. The hardest part is scraping up the capital and managing the logistics. I'm sure none of that knowledge is required to get any kind of engineering certification.

If you redesigned every bridge and airplane from scratch, from first principles, you would have a tremendous failure rate no matter how many certifications you held. That's what software is - every project is a brand new thing that has never been done before - there isn't 200 years of learning to fall back on.

One of the worst things that could happen to the software industry is for bureaucrats and other people who know nothing about software to really believe it is an engineering discipline and try and regulate it as such. We'll all be forced to do a fantastic amount of busy work to meet arbitrary and archaic "engineering standards", and the software will actually decline in quality. You'll be fined $50,000 if you use tabs rather than spaces, or don't use yoda compares in your C. But as long as you are using spaces and yoda compares you won't be liable for a failure. Stuff basically like that.

Maybe when we have 200 years of experience writing software, rather than 50 or so, we can start to think about formalizing it as an engineering job.

Re:What Should We Do to Prevent Software from Failing? by bluntfang on Monday May 20, 2019 @08:20PM (#19966609)
>That's what software is - every project is a brand new thing that has never been done before - there isn't 200 years of learning to fall back on.

Sorry but this is just gatekeeping bullshit. Most apps being built today by companies with the budget to build them are TODO apps, report apps, storefronts, big data mungers, CRMs, etc. They all just have different business requirements and domain specific knowledge. To think that every software project can't be categorized is ridiculous.

Re:What Should We Do to Prevent Software from Failing? by jacobsenscott on Monday May 20, 2019 @08:43PM (#19966694)
I honestly don't know what gatekeeping means in this context.

> all just have different business requirements and domain specific knowledge

Yeah - that's what I said. You realize that's where all the complexity is, right?

Re:What Should We Do to Prevent Software from Failing? by bluntfang on Monday May 20, 2019 @10:53PM (#19967250)
>I honestly don't know what gatekeeping means in this context.

you're trying to create a barrier to standardization. You don't want to codify successful patterns to keep your job coveted.

>Yeah - that's what I said. You realize that's where all the complexity is, right?

That's not what you said.

Re:What Should We Do to Prevent Software from Failing? by jdmichal on Tuesday May 21, 2019 @09:28AM (#19969924)
You're being extremely uncharitable.

Look, business processes are different at every single company. Especially between companies doing the exact same thing. Which means that the software ostensibly doing the exact same thing at each of these companies is going to vary dramatically. Because the software at a company aligns to the business processes of that company. This is the true heart of Conway's law: "organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations."

And there is no fixing this. It's baked directly into the axioms. If every company in a domain ran exactly the same way, there would be no such thing as a competitive advantage.

Re:What Should We Do to Prevent Software from Failing? by jacobsenscott on Tuesday May 21, 2019 @12:24AM (#19967554)
> you're trying to create a barrier to standardization. You don't want to codify successful patterns to keep your job coveted.

Ugh. I use as many libraries and services as possible so I can focus on writing code when no standard tools exist. That will keep me busy every day forever. If you think I'm out there sabotaging standardization efforts you're delusional. I wouldn't even know how to do that. Slash tires at a W3C convention or something?

Re:What Should We Do to Prevent Software from Failing? by repolfx on Tuesday May 21, 2019 @05:58AM (#19968797)
Yeah, and a lot of that software sucks because the companies who pay for it to be developed want the cheapest possible thing that just about works and not some ultra-engineered unkillable concrete bunker of an app that costs them 50x more. That was the entire point of the agile revolution - get rid of waterfall methods inherited from classical physical engineering and switch to constant iteration and shipping, with fixes to not-quite-right work being done whilst workers are in the building. Software engineering became less like regular engineering because that's what the customers wanted, and who's to say they were wrong?
Re:What Should We Do to Prevent Software from Failing? by kevin_thibedeau on Monday May 20, 2019 @08:30PM (#19966649)
The firmware in all the electronic gizmos in your life aren't running "just apps". Much of it is poorly developed shoot from the hip code that is riddled with bugs. Some of it is running in cars and planes that manage to kill people because of hubris.
Re:What Should We Do to Prevent Software from Failing? by phkahler on Monday May 20, 2019 @09:05PM (#19966797)
And some of it is developed under standards like ISO 26262, or IEC 61508. You would be amazed at what goes into your steering, braking, airbag, and stability control systems.
Re:What Should We Do to Prevent Software from Failing? by bluntfang on Monday May 20, 2019 @10:54PM (#19967255)
You think that's most of what's being developed today? Life critical firmware?