Live data from Hacker News

What is negative engineering?

future.com

41–50 of 61 posts

Re: What is negative engineering?

#41

See, treating this as an add-on is why software has a reputation as "not real engineering". Engineering is all about turning science into products . Anyone with a chemical lab and enough post-grad grunt can make a compound. That's just the start. Getting it to customers, at scale, with a saleable price and not selling poison, contamination, or thin air and not turning your plant into a crater or superfund site is the…

I don't understand this kind of inferiority complex. In software engineering we can often afford to wing it in a way that other kinds of engineering can't because they are strongly locked into what they've built already and because human life is at play. You can't really redo the foundation of a pre-existing building without a truly heroic amount of work, and you can't reboot a person if their pacemaker fails. When p…

>> In software engineering we can often afford to wing it in a way that other kinds of engineering can't ...

Just because you can doesn't mean that you should. Of course, with software that is truly noncritical, handling failure modes can be optimized away in favor of shipping-the-new-version sooner. That doesn't mean that it is a good thing.

The fact that this is so prevalent in the software industry is why the general public sees most software and indeed technology ("software is eating the world...") as a plague — time and time again, NO effort is made to ensure that things fail-safe, or even that they fail-gracefully.

So the user experience is that tech is good enough that we sort of have to use it (it's better than paper), but so bad that it is endlessly frustrating, whether it's endless glitches in client or web apps, data that gets mysteriously lost or corrupted, Bluetooth still screwing up connections, UI 'designs' that hide key functions behind a 'clean' interface that is nonetheless inscrutable for the occasional user... the entire industry has created a world no one wants to live in, one little decision at a time.

(And that doesn't even begin to account for software that kills people by bad decisions or oversights.)

The fact that an article such as this one is even necessary — that it is NOT simply assumed that an absolutely key part of the design process of every piece of software is to consider all failure modes and how to handle them in a way that is safe and graceful — casts a real shadow over the software industry, and shows why it is still separate from real engineering (despite software often being more complex).

Re: What is negative engineering?

#42

See, treating this as an add-on is why software has a reputation as "not real engineering". Engineering is all about turning science into products . Anyone with a chemical lab and enough post-grad grunt can make a compound. That's just the start. Getting it to customers, at scale, with a saleable price and not selling poison, contamination, or thin air and not turning your plant into a crater or superfund site is the…

I don't understand this kind of inferiority complex. In software engineering we can often afford to wing it in a way that other kinds of engineering can't because they are strongly locked into what they've built already and because human life is at play. You can't really redo the foundation of a pre-existing building without a truly heroic amount of work, and you can't reboot a person if their pacemaker fails. When p…

[deleted]

Re: What is negative engineering?

#44
post #29

Earlier quoted context omitted.

Not comparable at all. You can pay to have a bridge constructed and the project will be defined by an architect, built and inspected following a rigorous and standardized set of steps. You can also pay to have software built. The specs will not be even remotely as precisely defined and the building of the product will not even remotely follow a standardized set of steps. It will come down to a team and individual pro…

Construction is frequently slapdash. A friend's wife, who works as an engineer, commented that it often seemed like the construction workers were trying to screw everything up on purpose. As-built is frequently different from the original plans, and that's before you take into account all of the change requests that happen in construction, such as the change that caused the Kansas City Hyatt disaster (oops, a single…

Construction has a standardized set of steps, which when followed will reliably produce a desired outcome. Programming has no such thing because it it can not, it is a fundamentally different discipline that is unlike any other that we call engineering. Negligence is not relevant.

Re: What is negative engineering?

#45
post #41

Earlier quoted context omitted.

I don't understand this kind of inferiority complex. In software engineering we can often afford to wing it in a way that other kinds of engineering can't because they are strongly locked into what they've built already and because human life is at play. You can't really redo the foundation of a pre-existing building without a truly heroic amount of work, and you can't reboot a person if their pacemaker fails. When p…

>> In software engineering we can often afford to wing it in a way that other kinds of engineering can't ... Just because you can doesn't mean that you should . Of course, with software that is truly noncritical, handling failure modes can be optimized away in favor of shipping-the-new-version sooner. That doesn't mean that it is a good thing. The fact that this is so prevalent in the software industry is why the gen…

[deleted]

Re: What is negative engineering?

#46
post #44

Earlier quoted context omitted.

Construction is frequently slapdash. A friend's wife, who works as an engineer, commented that it often seemed like the construction workers were trying to screw everything up on purpose. As-built is frequently different from the original plans, and that's before you take into account all of the change requests that happen in construction, such as the change that caused the Kansas City Hyatt disaster (oops, a single…

Construction has a standardized set of steps, which when followed will reliably produce a desired outcome. Programming has no such thing because it it can not, it is a fundamentally different discipline that is unlike any other that we call engineering. Negligence is not relevant.

Can you give an example of what you think one of these "standardized set of steps" in construction is?

My suspicion is that, if you start trying to get specific, you can actually find standardized steps at the same level of abstraction in programming. But since construction superficially looks like "stamp out multiple copies of the same thing" whereas programming is superficially "everything is its own special sauce," people try comparing them at different levels of abstraction.

Re: What is negative engineering?

#47
post #41

Earlier quoted context omitted.

I don't understand this kind of inferiority complex. In software engineering we can often afford to wing it in a way that other kinds of engineering can't because they are strongly locked into what they've built already and because human life is at play. You can't really redo the foundation of a pre-existing building without a truly heroic amount of work, and you can't reboot a person if their pacemaker fails. When p…

>> In software engineering we can often afford to wing it in a way that other kinds of engineering can't ... Just because you can doesn't mean that you should . Of course, with software that is truly noncritical, handling failure modes can be optimized away in favor of shipping-the-new-version sooner. That doesn't mean that it is a good thing. The fact that this is so prevalent in the software industry is why the gen…

[deleted]

Re: What is negative engineering?

#48
post #44

Earlier quoted context omitted.

Construction is frequently slapdash. A friend's wife, who works as an engineer, commented that it often seemed like the construction workers were trying to screw everything up on purpose. As-built is frequently different from the original plans, and that's before you take into account all of the change requests that happen in construction, such as the change that caused the Kansas City Hyatt disaster (oops, a single…

Construction has a standardized set of steps, which when followed will reliably produce a desired outcome. Programming has no such thing because it it can not, it is a fundamentally different discipline that is unlike any other that we call engineering. Negligence is not relevant.

Programming certainly can follow standardized design and implementation methodologies. I don't think there is anything fundamental about software engineering that prevents that. It doesn't usually happen because there's not enough agreement on all levels of what is the best methodology. Software engineering is young and still sees significant evolution. Principles of software design and engineering are largely agreed upon and applied, but not in a single, concrete and consistent standard because experts still disagree too much on the specifics of applying those principles, and on other controversial principles.

And of course there is often no regulations that would require and guarantee the application of such a standard, and no standardized QA by customers.

Re: What is negative engineering?

#50
post #29

Earlier quoted context omitted.

> Almost never Isn’t this the key point? That *most* “software engineering” is not engineering. I can build a bridge and not be an engineer; similarly I can build software and not be an engineer. The properties of the bridge/software is what makes the difference isn’t it? > How many large construction projects fail due to incorrect engineering compared to large software projects? Yes, poor engineering is rampant. But…

Not comparable at all. You can pay to have a bridge constructed and the project will be defined by an architect, built and inspected following a rigorous and standardized set of steps. You can also pay to have software built. The specs will not be even remotely as precisely defined and the building of the product will not even remotely follow a standardized set of steps. It will come down to a team and individual pro…

> Which is why it is not engineering.

I think using that as a basis for this conclusion is wrong. Software changes a lot because it’s possible and “CHEAP” to do so compared to engineering in the meat world. This is a business pressure/decision. If companies can easily and cheaply modify bridges arbitrarily, I believe they will; and this wouldn’t have any bearing on whether it’s engineering.

> Software that was running space shuttles was famously engineered.

This is exactly my point: Most swans are white, doesn’t mean all swans are white.

Post reply on HN