RogerHScott
Active Member
As a professional software engineer for many years, I could write you a book in answer to this (and your other) questions, but...Is it too much to ask that a "finished product" should function as intended, whether it is tangible like a refrigerator or intangible like a computer program?
First problem: the "intended function" of virtually all software systems is woefully underspecified (for any number of reasons, including
the entity asking for it being too lazy to spell out exactly what they really want). Second problem: if you had a specification for a software
system comparable to the specification for a refrigerator, faithfully implementing it would cost far more than anyone would be willing
to pay. This is the basic problem with all of the whining about software quality; no one would pay for the level of quality they think they
want. Germane to this larger discussion, the market has shown again and again that people don't actually want higher quality, because
they choose new-and-shiny over not-so-new-but-polished time and time again.
A lot. Not the numbers you suggest, but big enough numbers as to be pretty overwhelming.Just how much work does it take to write these commands?
This is actually my specific field. The answer is yes, kinda. There are both "static analysis" tools (my thing) that can find problemsAre there diagnostic programs available to check for errors in the original program?
in the programs themselves and "dynamic analysis" tools that detect problems in what a program does when you run it. Both
kinds of tools are very useful and any serious software dev. organization should be using them. But even putting the best of all
such tools together still leaves many problems undetected, particularly problems of the form "you meant it to do A but you programmed
it to do B". Or, worse yet, "your customers expect it to do B but you sincerely believed it should do A and programmed it correctly to
do just that".
Although I'm sure there are "bugs" in Tesla's code, most of what I've seen discussed here are really "feature requests" (even if they're
"how could you seriously leave this feature out?!" kinds of things). To me, at least, there's a huge difference between claiming to do
something but having done it poorly and not claiming to do something at all. The former is the sort of thing that eroded confidence in
American automakers in the '70s and '80s. Is anyone suggesting Tesla has a major problem in this area? The latter might eventually
get you left behind by competitors, but customers won't despise you.