Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. thought: safety - Software Engineering vs other Engineering displanes

thought: safety - Software Engineering vs other Engineering displanes

Scheduled Pinned Locked Moved The Lounge
visual-studiohardwarebusinessquestion
27 Posts 17 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M maze3

    Saw a comic strip the other day semi-joking about Aeroplanes being relatively safe Bridges being safe then software built voting system - 😭 Several bits come to mind, some obvious like physical access. But one that stands out the most is scale of access. Recent Phillips light bulk hack indicates this train of though. Breaking 1 bit of software potentially allows access to the whole thing. Tampering a plane or bridge to fail are more localised to the one occurrence. But "hack" a tesla, or digital polling station, and the spread risk is high. So yes, funny as a joke, but seriously, it is not so much that software engineering is more poorly implemented (ignoring the 90% of low code quality) then physical engineering disciplines, but have a wider risk effect when flaws exist. In contrast, software flaws can be fixed and updated/spread more rapidly then hardware flaws. How long was the gap between enthusiast plan makers to standardised specification for commercial use? HIPPA offers a bunch of guides (if i understand HIPPA πŸ€·β€β™‚οΈ). How linnet is HIPPA compared to commercial plan requirements?

    M Offline
    M Offline
    Member 9167057
    wrote on last edited by
    #18

    A problem I face all the time on my own workplace is that software is considered to be malleable. Well, it technically is, but to achieve safety (or even something resembling quality), the mindset has to shift towards an engineering "think first" aproach. My product managers don't want to. They prefer a more artisinal aproach: telling roughly what they want, seeing the result, having things change, seeing the result of that and so on. I suppose, the main issue with software is this aproach working at first. Sure, it breaks down later (let's say because the main engine of what I'm building isn't capable of something that TOTALLY HAS TO BE ADDED a month or two later) but at first, it's malleable and the cost of this nonsense is all-too-easy to dump on the programmer because hey, I'm the one introducing all the bugs, aren't I? Building a bridge or a plane, it's kinda obvious that things have to be thought through in advance. But building software, there's no immediate need to do anything in advance. And as people are, they tend to ignore everything that comes tomorow for the sake of today.

    1 Reply Last reply
    0
    • M Marc Clifton

      maze3 wrote:

      Developers: Sorry about this, but could you details the issue a bit better, do you have some images of what the pilot was doing?

      Developers: It was a user error. Oh gee, that sounds familiar. :sigh:

      Latest Articles:
      Abusing Extension Methods, Null Continuation, and Null Coalescence Operators

      J Offline
      J Offline
      Jan Heckman
      wrote on last edited by
      #19

      And then factor in support when you have a, let's call it suboptimal, product. There the 'it's not my/our fault' really gets to shine. EG:I could not use a slightly advanced feature on an internet connection (open a port to the outside) and documented it had to be a problem ISP side. They kept repeating the same inane and refuted advice mixed with telling me what they couldn't do, never said a word to what they could do, until someone (bless him) decided my cablemodem was a bit old. They sent a replacement and stuff worked. Don't want to know what would have happened if my modem had been newish. So I should be happy. And I am. But look a bit closer and you will see that their actual assistance was zilk, without my own knowledge I would have been helpless, and that they probably easily avoided learning anything from this small incident, the more so since not closing an issue is regarded as bad perfomance. The guy who helped my out probably thought he did a good deed and left it there. Upshot: support is (another) step down from product quality and even more likely to suffer under the letal mix of under pressure psychology and management. Quite comparable to boeing saying they will fix the software when they should fix the plane, and then having more critical (software) flaws discovered. Software to the rescue! Then support gets kicked up the ladder (to communication and higher) who are obviously completely unsuited for this job, but cannot admit it. There are real disasters waiting to happen. But it won't be my fault (/s. I regard this sentence as the first law of psychology so I keep using it in sarcastic mode). I've just put on Industrial Disease (Dire Straits). Good for the mood.

      1 Reply Last reply
      0
      • L Lost User

        No, that's not agile; manufacturing has a clear and well-defined endproduct; there's no basement of a house while being undecided about the amount of stories, or the amount of stairs and elevators. The only stuff that's agile outside our own trade, is pharmacy; medication that doesn't work, but has reliable side-effects gets re-marketed to that side-effect as being the main thing.

        Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

        M Offline
        M Offline
        Mark_Wallace
        wrote on last edited by
        #20

        Eddy Vluggen wrote:

        medication that doesn't work, but has reliable side-effects gets re-marketed to that side-effect as being the main thing.

        I'll have to assume that you have more knowledge than I about little blue pills.

        I wanna be a eunuchs developer! Pass me a bread knife!

        1 Reply Last reply
        0
        • J Jorgen Andersson

          Greg Utas wrote:

          as would someone who took his car to a mechanic and asked for it to be fixed ("patched") while still traveling down the road.

          Tesla?

          Wrong is evil and must be defeated. - Jeff Ello

          Greg UtasG Offline
          Greg UtasG Offline
          Greg Utas
          wrote on last edited by
          #21

          TSLAQ? :laugh:

          <p><a href="https://github.com/GregUtas/robust-services-core/blob/master/README.md">Robust Services Core</a>
          <em>The fox knows many things, but the hedgehog knows one big thing.</em></p>

          J 1 Reply Last reply
          0
          • M Marc Clifton

            Eddy Vluggen wrote:

            Have you ever seen an (non-Boeing) aeroplane or bridge being built using the Agile methodology?

            Well said. Nothing in the real world that I'm aware of uses Agile except supposedly software development. I think that says something (either about my ignorance or the stupidity of Agile, I suspect the latter, not the former.)

            Latest Articles:
            Abusing Extension Methods, Null Continuation, and Null Coalescence Operators

            A Offline
            A Offline
            agolddog
            wrote on last edited by
            #22

            I'd also point out that physical engineering has thousands or hundreds of years of experience in building the things they build, where software has decades. Also, the time from design to implementation in their world is decades or years, not weeks. They are different disciplines in that way; software can be (relatively) easily changed, bridges cannot. Thus, it might make sense to have different approaches. I think the underlying point Marc's driving at is valid, though. There are areas of development where agile simply isn't acceptable: life-critical devices, software operating aircraft, financial markets, etc. Developers in those fields probably need to take an approach closer to engineering.

            1 Reply Last reply
            0
            • Greg UtasG Greg Utas

              TSLAQ? :laugh:

              J Offline
              J Offline
              Jorgen Andersson
              wrote on last edited by
              #23

              Had to look up that. I just don't understand that religion. I also believe batteries is a dead end, and the future lies in fuel cells.

              Wrong is evil and must be defeated. - Jeff Ello

              1 Reply Last reply
              0
              • M maze3

                Saw a comic strip the other day semi-joking about Aeroplanes being relatively safe Bridges being safe then software built voting system - 😭 Several bits come to mind, some obvious like physical access. But one that stands out the most is scale of access. Recent Phillips light bulk hack indicates this train of though. Breaking 1 bit of software potentially allows access to the whole thing. Tampering a plane or bridge to fail are more localised to the one occurrence. But "hack" a tesla, or digital polling station, and the spread risk is high. So yes, funny as a joke, but seriously, it is not so much that software engineering is more poorly implemented (ignoring the 90% of low code quality) then physical engineering disciplines, but have a wider risk effect when flaws exist. In contrast, software flaws can be fixed and updated/spread more rapidly then hardware flaws. How long was the gap between enthusiast plan makers to standardised specification for commercial use? HIPPA offers a bunch of guides (if i understand HIPPA πŸ€·β€β™‚οΈ). How linnet is HIPPA compared to commercial plan requirements?

                M Offline
                M Offline
                MikeTheFid
                wrote on last edited by
                #24

                <rant> It is astounding to me how little things have actually changed. Like. Ever. Software creation (don't like "engineering" or "development," try that on) has, in my experience beginning in the '70s, always suffered from silver-bullet-syndrome. (See: [No Silver Bullet - Wikipedia](https://en.wikipedia.org/wiki/No\_Silver\_Bullet)) Example: Agile et al. was an answer to the perceived deficiencies of waterfall. It became THE hammer in a world of nails for many people. The fact is, (ok, I admit, TO ME) all methodologies have their logical strengths and place; they aren't mutually exclusive and can be combined in a large project. As someone mentioned above, there are so many languages! I would add: And Frameworks! And libraries! And IDEs! And, for that matter operating systems and db and server platforms! Paradigms shift. I get that. But why the elephant do we need ALL these? Except to give creator$ and early adopter$ an edge. Imagine how much time and money could have been saved over the decades if we'd settled for just a couple of languages with necessarily different strengths. </rant> [deep calming breath] I just needed to get that out of my system. We now return you to your regularly scheduled programming.

                Cheers, Mike Fidler "I intend to live forever - so far, so good." Steven Wright "I almost had a psychic girlfriend but she left me before we met." Also Steven Wright "I'm addicted to placebos. I could quit, but it wouldn't matter." Steven Wright yet again.

                K 1 Reply Last reply
                0
                • Greg UtasG Greg Utas

                  I'm very reluctant to put the word "engineering" after "software". There isn't the same level of agreement about how to do things in the software community as there is in the engineering community. We have competing language families, processes, methodologies, and even design patterns (the latter being a stab at something that starts to look like engineering). Engineering over-designs systems by a considerable factor to reduce the risk of failure. What's the equivalent in software, maybe building lots of defensive checks into the code? Still a pale imitation. On the other hand, a customer who came back to the engineering team saying that he wanted his bridge lengthened by 200m on its "next release" would be laughed out of the room, as would someone who took his car to a mechanic and asked for it to be fixed ("patched") while still traveling down the road.

                  K Offline
                  K Offline
                  kalberts
                  wrote on last edited by
                  #25

                  Greg Utas wrote:

                  Engineering over-designs systems by a considerable factor to reduce the risk of failure. What's the equivalent in software, maybe building lots of defensive checks into the code? Still a pale imitation.

                  We can't afford the microseconds, you know... I have been through several "ages" of SW development. When I started my studies (end 1970s), machines were so slow that there was a good reason to do all sorts of (unsafe) tricks to make the programs fast enought to be useful. Then we had some years ever faster machines, and the word was more or less "code any way you want; don't worry about speed - just switch to the next generation hardware if it is too slow". So coders ignored complexity issues of both data structures and algorithms (1980s). But as problem sizes grew, algorithmic complexity became important, and we started a new race against the microseconds that still lasts. It has more or less become an obsession with us. We can never state "It is fast enough!" - if I can do it faster than you, then I am a better developer. Like, I made this Sudoko solver (not primarily for solving Sudoko puzzles, but to illustrate backtracking). The most difficult puzzle I found took 0.6 sec to solve. When I mentioned this to some other developers, I was immediately turned down: It can be done much faster than that! ... But who needs to solve Sudoko puzzles in much less than 0.6 sec? Beating each other by milliseconds is far more important than having robust code, even when the speed is really useful for nothing else than winning the race. I learned a lesson quite early: When PCs were entering the mainstream market, I talked with an architect who had got one. In the early days, drawing on a PC was out of the question; it was used for calculating project costs. Their main program went through the budget to verify that they had included the cost of all the required elements - door handles and locks and whatever. This architect told that in the first use of this program, it had reminded them of overlooked expenses significantly exceeding the cost of the PC and the software. The company was awarded the contract (on the adjusted budget), so the PC paid for itself in full on its very first serious job! So I was curious about the PC hardware. CPU, harddisk ... No, they didn't have any harddisk. What?? The A: floppy held DOS and this database application, the B: floppy held their project data. But - running it from floppies<

                  1 Reply Last reply
                  0
                  • M MikeTheFid

                    <rant> It is astounding to me how little things have actually changed. Like. Ever. Software creation (don't like "engineering" or "development," try that on) has, in my experience beginning in the '70s, always suffered from silver-bullet-syndrome. (See: [No Silver Bullet - Wikipedia](https://en.wikipedia.org/wiki/No\_Silver\_Bullet)) Example: Agile et al. was an answer to the perceived deficiencies of waterfall. It became THE hammer in a world of nails for many people. The fact is, (ok, I admit, TO ME) all methodologies have their logical strengths and place; they aren't mutually exclusive and can be combined in a large project. As someone mentioned above, there are so many languages! I would add: And Frameworks! And libraries! And IDEs! And, for that matter operating systems and db and server platforms! Paradigms shift. I get that. But why the elephant do we need ALL these? Except to give creator$ and early adopter$ an edge. Imagine how much time and money could have been saved over the decades if we'd settled for just a couple of languages with necessarily different strengths. </rant> [deep calming breath] I just needed to get that out of my system. We now return you to your regularly scheduled programming.

                    Cheers, Mike Fidler "I intend to live forever - so far, so good." Steven Wright "I almost had a psychic girlfriend but she left me before we met." Also Steven Wright "I'm addicted to placebos. I could quit, but it wouldn't matter." Steven Wright yet again.

                    K Offline
                    K Offline
                    kalberts
                    wrote on last edited by
                    #26

                    MikeTheFid wrote:

                    Example: Agile et al. was an answer to the perceived deficiencies of waterfall. It became THE hammer in a world of nails for many people.

                    I am shocked by how many young SW developers know one thing about waterfall: It is bad and must be shunned away from at all costs. But they don't have a clue about what it really is about. (Like, as I use as an example, the idea that you should try to identify the problem before you start solving it :-)). Even those who have some slight idea about its real meaning have been given an impression of the way it worked out that makes me shake my head. They may explain it as if every step was done once, and then the results carved in stone and would never never be changed, it had to be everlasting. You never can go back and revise or complete stuff in an earlier stage. Not even in a second version of the product, it seems, and most certainly not when developing one given version: You never swim up the river. Seriously: Riverfall in practical use never was the way it is described today! It was much more open to revisions, reconsideration and continous adaption based on experiences collected during the development work. Its promninent feature was that you should learn to crawl before you learn to walk. I still think that poor planning is one of our biggest SW development problems of today. Agility is fine at any stage of a project. But when it replaces all sorts of planning, problem analysis, architecture and design work, then it is not as good. Agile principles are great, of course, and allow for both analysis and design, even before you start coding. I am not comparing riverfall ideals (/horror visions) to agile ideals, but pragmatic riverfall to agile in practice. To how often the analysis I do as the first step are pushed aside: We have to get som code running! (Even when the analysis is already there, it is pushed aside, ignored, as a nightmare reminiscence from the dreadful riverfall age.) < /rant>

                    1 Reply Last reply
                    0
                    • M maze3

                      Saw a comic strip the other day semi-joking about Aeroplanes being relatively safe Bridges being safe then software built voting system - 😭 Several bits come to mind, some obvious like physical access. But one that stands out the most is scale of access. Recent Phillips light bulk hack indicates this train of though. Breaking 1 bit of software potentially allows access to the whole thing. Tampering a plane or bridge to fail are more localised to the one occurrence. But "hack" a tesla, or digital polling station, and the spread risk is high. So yes, funny as a joke, but seriously, it is not so much that software engineering is more poorly implemented (ignoring the 90% of low code quality) then physical engineering disciplines, but have a wider risk effect when flaws exist. In contrast, software flaws can be fixed and updated/spread more rapidly then hardware flaws. How long was the gap between enthusiast plan makers to standardised specification for commercial use? HIPPA offers a bunch of guides (if i understand HIPPA πŸ€·β€β™‚οΈ). How linnet is HIPPA compared to commercial plan requirements?

                      J Offline
                      J Offline
                      James Lonero
                      wrote on last edited by
                      #27

                      Have you noticed that a new house has the same house basic architecture and shape as all other houses previously built. A new car has the same architecture and basic shape as all other cars built. A new building has the same basic architecture and shape as all other buildings previously built. A new bridge has the same basic architecture and slightly varying shape as previously built bridges. But new software is different in its intended audiences and functions. Its architecture and shape will vary from product to product. Therefore it difficult to nail down specific engineering principles for software development.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups