5 ms·
The parallels do not go very far, unfortunately. When software fails, and kills people, it is rarely investigated. It's development is rarely investigated. W
by otakucode 8y ago
The parallels do not go very far, unfortunately. When software fails, and kills people, it is rarely investigated. It's development is rarely investigated. When that is done, however, the differences widen even further. There is no degree to which software development can be done incompetently that criminal negligence charges can succeed. We saw this proven within the past decade when some of Toyotas cars engaged in "unintended acceleration." Despite the developers being denied even tools as basic as a bug tracker, and despite following only 4 out of over 90 'required' or 'suggested' coding practices advised by the automotive industry, the courts ruled that because no actual standards exist for software development, the management of the company could not be held criminally liable for the deaths they caused.
This problem will re-appear. When a bridge collapses, if they found out the company building it hired the cheapest engineers right out of school, denied them access to tools or training needed to do their job, kept them removed from decisions about scheduling, ignored any concerns voiced about needing more time for proper development and testing, multiple people (the ones who wear suits) would go to prison and the company would likely be destroyed. If a few executives were put in prison over shoddily made software rushed to market, I imagine we would see changes in how software is developed of monumental proportions. But not until then, apparently. And that day doesn't seem to be coming soon. Perhaps self-driving cars will herald such a wake-up call. I know I'm certainly not trusting one until things change drastically.
- JohnJamesRambo 8y agoI like your viewpoint. I’d be more inclined to call programmers engineers under your proposed system.
- otakucode 8y agoIt's really a difficult issue. There has been a lot of discussion about it in the Communications of the ACM over the past decade (maybe longer, I've only been a member so long). Companies don't want there to be any standards because it would mean they would have to pay a lot more for skilled developers, they would have to have software engineers able to override MBAs when making business decisions about scheduling, they would be answerable when they cut corners while treating software as a cost center (despite their business being literally impossible to conduct without it in most cases), etc. Developers, meanwhile, generally don't like the idea because it raises the barrier to entry, and it would establish standards that are extremely likely to be disagreed with by large numbers of people. Other professions have dealt with this, however, so it's not a completely unsolvable problem. I'd personally think that 'registered, licensed software engineers' might be something that a company would only need if producing certain kinds of products. If you're building an in-house processing system whose behavior and outputs your business is entirely legally responsible for, you probably don't need the licensed engineers. If you're building self-driving cars, though, yeah, you'd have to follow some standard practices and such. One would hope they would be fairly high-level, such as simply requiring static analysis be performed rather than getting as specific as mandating a specific tool be used. It's understandable that there is hesitation, but I worry that the hesitation will bite us badly. A government stepping in and mandating programming languages and libraries and creating a regulatory body and all of that wouldn't be completely unheard of for things dealing with infrastructure. And nobody wants that.
- carapace 8y agoI think part of the problem with software is that it's effectively invisible to most people. Most of our software would look like Rube Goldberg Machines if we somehow made it physically manifest, and a lot of the problems would then be pretty obvious even to the proverbial untrained eye.
- LyndsySimon 8y ago> Most of our software would look like Rube Goldberg Machines if we somehow made it physically manifest Now this is an interesting idea. I wonder if one write a static analysis tool that output a printable 3D model...
- carapace 8y agoHmm! Maybe print out layer: ASM on the bottom, and above it the C code structures (or whatever language.) If you included all the software that ran just to service a key press, the OS, drivers, etc... Thinking about it, I do believe that would be an ugly machine.