Code is getting convoluted

The Ariane 5 incident is a lot more complicated than “a lazy programmer”. The integer overflow is just one piece of a big chain of events that caused the overall failure.

Most interestingly, the code was correct when originally written. The situation couldn’t occur on the hardware it was written for, and only later was the same code reused on a different hardware where the error was now possible. You could equally pin the blame on hardware engineers for not having sufficient documentation to describe the differences or on testing for not fully exercising the functionality of the system as a whole. But pinning blame in a complicated failure like that is neither helpful nor interesting.

It’s been a while since I read the full investigation report into Ariane 5. Have you read it? I would recommend it for anyone who wants an insight into how tiny errors (both technical and people) can propagate and grow.

well it is still an unacceptable mistake
you have “all” the time and money in the world to prepare such a system
its just such goddamn waste, and people could have died too, just because some people didn’t triple check after all parts were in place

No, it’s more like they’re designed without any methodology in the first place, often by the “guy who knows some programming”. The world of “business apps” is full of one-offs that people thought was throwaway code when written, that’s still running 10 years later.

Ariane 5 is a great study. Google “Therac 25” for another case study in design failures and how they compound each other. This one actually did kill people.

Way to make me more depressed on this subject.

[quote]X Ray machine

causing him to scream

displayed the word “MALFUNCTION”

AECL personnel, as well as machine operators, initially did not believe complaints. This was likely due to overconfidence.
[/quote]
You gotta love humans.

What IDE are you using? Finding methods and variables should be as easy as tab completion.

Adding a new class shouldn’t require onerous amounts of work if you have a default implementation (e.g. MouseAdapter implements most of the MouseListener interface).

Probably best if you can post an example. Then you’ll get more distinct feedback.

I love that this thread turning from game dev to human killing program ;D

I don’t believe Eclipse has a plugin for that yet. Maybe try Netbeans?

This is why I’ll never ever write safety critical software. My code is shit.

Cas :slight_smile:

There’s KillAllHumans for IntelliJ but the author hasn’t updated it since Idea 8 and there’s no reviews, wonder why that is?

Just to try that? nah :smiley:

I wouldn’t say there’s no margin to work with in certain kinds of software projects. It’s just that it’s between almost working and functioning rather than between basic functionality and working correctly with future problems in mind. Also:

  1. Build bridge
  2. Use and maintain the bridge for a few years
  3. Wonder why you’re still putting money into a project that’s already finished
  4. Keep using bridge for three times the projected lifespan
  5. Argue over the best thing to do with the bridge
  6. Build another bridge to accommodate more traffic without shutting down the old one
  7. Goto 2