> If you accept that the parts of a car must be serviceable by arbitrary 3rd parties, then the software must be.
I accept that car parts must be serviceable, but I do not expect software of embedded parts to be arbitrarily serviceable.
> Otherwise, you must argue only /some/ parts should, and/or some not.
Which was exactly what I was saying.
> In which case, the argument you use for why software should not be must not apply to those other parts (otherwise, your argument is non-sensical).
My position is that software of an embedded "head unit" (weird term) is fundamentally different from "car parts". So I really don't see why the serviceability requirement of car parts would be, by default, valid for it.
From my perspective, it is up to you to make a case for the need to service such parts...
> As for complexity, the car in its entirety may well be just as complex as the software (excluding the software). The car in its entirety certainly must be least as complex as the software, so the extension of your argument to the car would mean that /no/ component of it should be serviceable or modifiable.
I really do not buy any this. How many millions of lines of code are we talking about in the Linux kernel? How often that code changes?
How often do you hear about serious engineering SNAFUs relating to new released cars or car's mechanical parts? How often you get that with new software releases? Surely, if the complexity and rate of changes is comparable it would somehow in the same ball park? (not saying that cars don't get recalled for bad parts, just saying that SNAFU frequency is a /lot/ lower).
Car parts are serviceable because they have an extraordinary level of well designed specifications, specifications which are designed for future compatibility and maintenance, and all things considered, those parts do not change that much from one year to another. Compare that to software change rates.
The same countries that made car part serviceability a legal requirement, also made an engineer's license or degree a requirement to design such parts. Do we have anything like that in software 'engineering'?