Comment by alright2565
3 days ago
I haven't driven this particular car, but if it's anything like any other infotainment system I've seen, I'm really hoping they're able get a profiler running on there to determine the technique they use to get massive frame drops on hardware they fully control.
> good devs are hard to find and expensive
> company contracts offshore agency
> devs costs drop by 20-40%
> offshore agency grabs any warm body off the street, JS-adjacent experience and minimum English is only requirement
> keeps 40% of the money
> "how many story points for the 360° camera React component, guys?"
It went like this:
We need a team of very good sw developers.
Maybe we can have 20% of the team be cheap "developers", people that have no inclination towards sw development to do the boring stuff.
Maybe 20% of real developers is enough in a team. The rest will learn from them.
Let's have 100% cheap developers, the project only needs changes.
We can get even cheaper developers, come to us with no prior experience and in 3 months we will teach you what you need to know.
Our projects are delayed due to covid.
Oh no, the Chinese!
TBH a lot of devs working on this are probably really good devs, but having experience in the German car OEM market I can quite confidently say that usually it's management pushing unreasonable deadlines/stupid features/setting priorities wrong. Kinda like in most companies that treat SW as second class citizen. Lots of catch up to do.
A friend had a nice job of driving BMWs for a manufacturer of such a system (it was early 2000s and the system was more embedded than Android/Linux). One test was setting a calendar alarm (because yeah of course the BMW needs an on-board calendar), and while cruising down the highway, wait for the alarm to go off, and then open a door. He said a colleague did this and the system crashed and went dark...
I suppose even driving 20kmh should trigger the "door open!" alarm.
BMW has a talent in that space. Over engineered modules with terrible software. I recently drove a Toyota rental and they seem to have hired some former BMW software people as well.
I don't need 120hz Apple-like design, but it's crazy how they can't even keep a basic 30fps UI running smooth. And they still try to throw in more and more bad running animations.
Those UIs are made by embedded software engineers that have been in the automotive sector for 40 years. They have no clue how to make a modern functioning UI. The company then hires a UX expert that draws out a full plan. The software engineers implement it, it looks identical to the UX specification… but occasionally drops to 10FPS.
Probably because an important message passed by on the CAN-bus and that got a bit more priority from the CPU than the GUI
I think IF they had hired embedded software engineers with 40 years of experience, those people would have delivered a UI that meets or exceeds all UI needs (even if it didn't look as visually appealing as it could). A 40-year embedded veteran knows how to write real-time code, structure the system and make it work under all conditions.
In fact I wager the OPPOSITE happened -- that they hired or outsourced software to people who have "web technology experience" and the UI and graphics architecture is a mishmash software stacks hastily thrown together (read: not architected).
Jaguar has a similar issue with the I-PACE where the HVAC system couldn't keep up with the knobs and would lag. A real embedded engineer who worked on real-time systems would know how to properly handle a quadrature encoded knob and NOT lag. A web-technology-first person who slapped something together using nodejs and/or Python would likely not know.
CPUs do not talk to displays via CAN.
Do you have a specific example of a function that exhibits this?
Both my BMWs (one each of the last two generations of iDrive) do not in any noticeable capacity, nor did my 2009 one with what was then known as "professional" navigation.
It's actually a little harder than people outside the UI framework space might think (there's really not a lot of time per frame; it's easy to put too much work where it doesn't belong; it's easy to regress if you're not monitoring for it after code changes).
It's core to usability at this point, though. They should make the effort.
> ... to determine the technique they use to get massive frame drops on hardware they fully control
I understand that's really lame but... who the heck gives a flying f--k about framerate in a car?
Are we talking about videos lagging for people sitting at the back (like kids)?