Fremont Kid
Well-Known Member
- First Name
- Steve
- Joined
- Oct 8, 2022
- Threads
- 8
- Messages
- 448
- Reaction score
- 304
- Location
- Colorado Springs, CO
- Vehicles
- 2022 Mustang Mach e Premium AWD
- Occupation
- Retired IT
I read through all of the posts in hopes that I won't duplicate anyone. I hope this helps for lay people who are not programmers. Ford's main problem is that they have not shared aspects of their system architecture with customers, i.e. how it is intended to work. In the old days the automotive companies shared a lot of information. Examples: Which cylinder is really the primary ignition cylinder - often not cylinder 1. How many degrees above or below top dead center the distributor should be synched to provide optimal ignition. Camshaft angles, electrical resistances, and many more. I am completely baffled that Ford will not share even rudimentary parts of their system architecture. Perhaps intellectual property protection?!I know I am probably going to regret the avalanche of nerdery that is about to ensue, but can anybody explain to a non-programmer why Ford is having so many bugs with SYNC, and why it is so slow to fix those bugs?
There are countless threads about (1) bugs that still exist after two years, and (2) how new releases not only fail to fix old bugs but introduce new ones.
I guess the first question is, is SYNC inordinately buggy, or is this to be expected and accepted?
What do you think is the reason for the bugginess? To my feeble mind, once you create a stable platform, you should be able to add features without effing up the stuff that already works, but that doesn’t seem to be the case with Ford. Yes? No?
And then there are the bugs that Ford has known about for years but hasn’t fixed. Why the delay? Is it really so hard to fix bugs that these cannot be prioritized?
Is it possible that part of the problem is outsourcing portions of software development to different countries / languages? I don’t even know that Ford does that, but I assume that they do. I remember when NASA crashed that probe into Mars because they failed to convert imperial to metric, for example.
Or is this a “you get what you pay for” situation and Ford hasn’t adequately invested in software dev?
Any insight for laymen would be appreciated.
Consequently, we as users are all reverse engineering the software based on our experiences. I SUSPECT WE ARE ALL CORRECT TO A DEGREE AND ARE ALL WRONG TO A DEGREE! Not casting blame. Just that without even basic information from Ford we are trying to describe an elephant while blindfolded without knowing it is an elephant.
For lay people: A fundamental aspect of software engineering is to determine critical functions and protect them by not allowing other parts of the software to affect those critical functions. Any part of the software that controls the motors which drive the vehicle should be considered critical. Yet Ford has created 3 different drive modes, so immediately three different optional settings could impact how the motors propel the vehicle. Each drive mode sets colors that are presented on the dash display and the ambient lighting. I could describe how things like variables and parameters work to do this, but I'm trying to keep this description for lay people.
Now extrapolate this example to all of the different functions such as charging settings and departure time settings - are both of these considered charging just because they pull electricity from a charger? If so, they should be part of one critical function. If not, they should be separated as two functions. Other functions include profiles, PAAK, walk away locking, navigation, finding charging stations, etc. The system architecture can become extremely complicated. My perspective is to develop the system architecture as basic as possible for the critical functions, then test, test, test. Second iteration adds a discrete set of additional features, then test, test, test. Especially what is termed regression testing to ensure the already developed critical systems have not been affected negatively. Do this iteratively until all of the functionality of the vehicle is in place.
Now, synchronizing settings between the Ford Pass app, the vehicle and some central server is another issue. Ford seems to want these settings to be sent to and controlled by some authoritative server, which creates contention between which settings are now controlling charging, when charging occurs, etc. I wish Ford would stop this and allow settings between the Ford Pass app and the vehicle to be authoritative. Use a remote server for logging only.
I agree with those who state that software will always have errors, i.e. bugs. However, the initial architecture may also have flaws. Ever wish your house could be rebuilt with a slightly different floor plan or that the water or electrical lines were installed differently? Once built, changing a house is impossible or quite costly. If the architecture is revised then much of the software must be reworked, tested, tested, tested, etc. You probably get the point.
I apologize if this explanation is way too long. Just trying to provide the requested perspective.
All the best.
Sponsored