1. 36
  1. 17

    This is understandably tagged “historical”, but do note that it’s extremely relevant to this day. A while back, when I was still doing firmware for medical devices, this was de-factor required reading for everyone who joined the company.

    1. 2

      It should be required reading for every developer and manager. I came across some extremely graphic descriptions of some of the injuries and clinical outcomes when I first read about this tragedy… absolutely horrifying what an overflow can do.

    2. 6

      I wish this incident were taught in every CS curriculum and every bootcamp. I think it’s particularly important to look not only at how the failure happened, but at how the device manufacturer tried to minimize its importance - a pattern I see repeated frequently. Software, as a profession, needs to hold itself to higher standards.

      1. 4

        I wish this incident were taught in every CS curriculum and every bootcamp.

        This was something I studied at my university in the UK during the first week of my first semester in 1999. I understand that this was intentional as part of British Computer Society (BCS) accreditation. It was accompanied by a requirement for a full ethics course in the second year. There was no option to skip it, and UK degrees generally didn’t offer any “choose your own adventure” path around it.

        The situation is very different globally, especially in the US. There seems to be a great deal more flexibility than the British system for students and institutions. It’s hard to ensure exposure to this, or similar ethics material in that situation.

        Many of the teachers at bootcamps are products of universities. If something wasn’t taught earlier in their academic life, then it’s unlikely that they would choose it as bootcamp content. I’m also sidelining some other issues, including CS versus SWE, rigour and (mathematical) depth of CS all courses is the most important feature of the degree, professors not taking “soft” subjects seriously, lack of experience teaching these subjects, etc.

        1. 3

          Same - UK, software module of a general engineering course, in the first year, along with a general ethics and professional responsibility module.

          I think in ‘real’ (sorry @hwayne) engineering degrees there is a much more constant drumbeat of the fact that people’s lives depend on you understanding the problem you’re trying to solve and thinking deeply about the solution, combined with longer history of established practice and lessons learned. It seemed quite natural at the time, and I’m surprised about the inference from the GP post that these sorts of examples are not brought up by default in any programming course.

          Almost anyone in my world (mech/aero engineering) who has done at least one formal software engineering module at university can recite Ariane 5 and Therac 25. Whether or no that overpowers their subsequent PRINCE2 training is a matter of debate, but it’s certainly taught along with all the other basics.

        2. 2

          Software, in this case, was one lone developer, who I’m presuming was working the way they were directed to work by their manager.

          Higher professional standards in software development would be great. But I don’t think they’d have helped, in this case.