I worked on BMW infotainment for a time. My opinions are my own obviously, I don't even work at BMW anymore.
So, when I was working, I found the decisions regarding the infotainment mind boggling, to me they made zero sense, until I found some random documents deep in the BMW intranet, where I found the logic of it all: The focus was actually increasing the car range, so for example instead of having one infotainment dedicated hardware, one for the doors, one for the brakes, etc... now the cars have the least amount of computers as possible, located in the locations that result in the least wires as possible, with the goal of saving weight. Because of this, the software layer now had to deal with extra virtualizations, software that originally was to run on a specific microcontroller and do a specific task, and communicated with other parts by wire, now shares a generalized CPU with many other software, and communicate by virtual machines sending messages to each other.
Marvelous stuff from the point of mechanical engineering, indeed results in lighter car and less parts. But the end result for the user? It is mind bogglingly bad, several VMs running on top of each other, everything is slow, the Infotainment instead of being just Infotainment now do several other things.
I had written some of the surprising non-Infotainment stuff the Infotainment do, but that probably would cross into violating NDAs territory, so better not. Just let's say the Infotainment has to meet some non-entertainment related EU regulations.
Isn't what you are describing known as Zonal Architecture (as opposed to Domain Architecture) and supposed to be the hot new way of architecting automotive platforms? Tesla was pioneering it. The Volkswagen Group spent billions to get their hands on Rivian's zonal architecture platform.
But bafflingly to me, almost zero of my coworkers seemed to be aware of it. They would just get the seemly weird orders from above and would execute them, without figuring out the end goal, and this does result into some bad software engineering (because people don't know the end goal they don't know what they can optimize, so they just don't).
So, when I was working, I found the decisions regarding the infotainment mind boggling, to me they made zero sense, until I found some random documents deep in the BMW intranet, where I found the logic of it all: The focus was actually increasing the car range, so for example instead of having one infotainment dedicated hardware, one for the doors, one for the brakes, etc... now the cars have the least amount of computers as possible, located in the locations that result in the least wires as possible, with the goal of saving weight. Because of this, the software layer now had to deal with extra virtualizations, software that originally was to run on a specific microcontroller and do a specific task, and communicated with other parts by wire, now shares a generalized CPU with many other software, and communicate by virtual machines sending messages to each other.
Marvelous stuff from the point of mechanical engineering, indeed results in lighter car and less parts. But the end result for the user? It is mind bogglingly bad, several VMs running on top of each other, everything is slow, the Infotainment instead of being just Infotainment now do several other things.
I had written some of the surprising non-Infotainment stuff the Infotainment do, but that probably would cross into violating NDAs territory, so better not. Just let's say the Infotainment has to meet some non-entertainment related EU regulations.