Programmers - why so many bugs?

jpinFLX

Well-Known Member
First Name
Josh
Joined
Aug 30, 2022
Threads
1
Messages
116
Reaction score
77
Location
USA
Vehicles
Ordered Mache, Volvo XC40, Toyota RAV4 hybrid
Occupation
Director, IT
Country flag
I am a Director of Software Engineering

Some of this is the concept of just enough just in time, and constant improvements. The focus is on life safety and fundamental controls, which get the bulk of the Q/A (testing cycles), UI, and nice-to-have features are acceptance tested by not regression tested. There is a board with all the bugs and all the features, each with a story and a weight, they get prioritized based on resources and impact. Most of the time new features will trump non-critical UI bugs. Eventually, things will get stable than a major release will come and trash most of it. My main assumption is a new framework needed to be developed and adopted to account for EV-specific namespaces and APIs, it may be the APIs are just still a bit unstable in accounting for all of the other interoperability platforms.
Sponsored

 

logcat

Member
First Name
Brandon
Joined
Jan 26, 2023
Threads
2
Messages
17
Reaction score
4
Location
Austin
Vehicles
2021 Mustang Mach-E Premium
Occupation
Software Engineer
Country flag
As someone who works in software but not a programmer it is not their fault.
Programmers: We can have all the bugs fixed in the new release which doesnt add any features, will take us 6 months.
Some Uniformed executive: Ok, how about we push the release up to 1 month from now, no one cares about bugs, but just put something new so there is excitement
Programmers: Please let us just do our job, can you hear us....
Some Uniformed executive: Perfect, just tweeted out about the release, we ship in 3 weeks, just cut out the testing timeline.....
As a developer can confirm this is true. Have literally had project managers tell me the main concern is "giving them something shiny to look at."
 
OP
OP
Mirak

Mirak

Well-Known Member
Joined
Oct 8, 2020
Threads
109
Messages
3,660
Reaction score
5,840
Location
Kansas
Vehicles
"Sonic" 2021 MME Grabber Blue First Edition
Country flag
These 4.2.X updates are weird. People seem confused how they are different than the 4.1.X updates they already received. Ford probably has a good reason for it, but they’re not being very transparent about it.
 

astrorob

Well-Known Member
First Name
rob
Joined
Aug 26, 2022
Threads
12
Messages
645
Reaction score
273
Location
bay area
Vehicles
23MME GTPE, plug-in prius, 99 MBZ C43
Country flag
Clean code is more about reuse then comments. "Dirty code" is stupid/duplicate code and stupid comments
i think the complaint was not about comments (which of course are really helpful to explain what the original author was thinking) but about commenting out blocks of dead code rather than removing them outright. the statement was made that this bloats the code somehow, and obviously for a compiled language it does not. for an interpreted language, ok - the commented code is there in what was distributed to the customer, the interpreter has to parse the line and ignore it. so a little bit of overhead.
 

MellowJohnny

Well-Known Member
First Name
Christian
Joined
Nov 16, 2021
Threads
69
Messages
1,257
Reaction score
2,000
Location
YYZ
Vehicles
2022 Mach-E Premium AWD
Occupation
Solution Architect
Country flag
In my 20+ years in the business, it ultimately comes back to priorities - where do the resources go, and what are they working on.

Development teams could spend 100% of their time fixing bugs and ship zero new features (not usually a popular choice) or 100% of their time delivering new features to a system that gets increasingly unstable, and at some point will probably fall over completely.

Where you are in that continuum all depends on the priorities of Management / Product Owners. The vast majority of the time it is a delicate balance between the two.

For armchair quarterbacks out there it seems like an obvious thing to do, but these systems are, to paraphrase South Boston, wicked complex.

Personally I'm pretty happy with the Ford software - maybe I cut them way more slack then the average person, but I think given the task at hand, they are pulling it off.

Consider the Audi Q4 e-tron, which has been out for two years, is due for a dealer-only software update to allow for...wait for it...OTA updates. Other new BEVs out there with OTA capabilities have received only a handful of updates in the past year. Tesla of course has nailed it, but they've had time to sort it out.

All in all, Ford ain't doin' too badly.
 


Rt1AWD

Well-Known Member
Joined
Oct 12, 2021
Threads
36
Messages
1,063
Reaction score
588
Location
CA
Vehicles
MME CARt1 AWD
Country flag
i think the complaint was not about comments (which of course are really helpful to explain what the original author was thinking) but about commenting out blocks of dead code rather than removing them outright. the statement was made that this bloats the code somehow, and obviously for a compiled language it does not. for an interpreted language, ok - the commented code is there in what was distributed to the customer, the interpreter has to parse the line and ignore it. so a little bit of overhead.
I think I missed the original complaint and just responded to the quoted post. I agree commenting out old code is a very bad habit. If you want to keep it to continue a certain experiment in future then open a new issue in bug tracking tool and move that code there. In all other cases it is noise and should go. Version control is supposed to keep it.
The only legitimate reason to comment the code is if the old algorithm is almost equally as good as a new one with some advantages and there is a big possibility that somebody else might have to return and reevaluate the choice. In this case the programmer should put a good explanation near that commented code
 

jwraider

Member
First Name
Jesse
Joined
Mar 25, 2022
Threads
3
Messages
9
Reaction score
18
Location
Sonoma County
Vehicles
Mach e, Ranger
Country flag
my best guess is Ford is a car company not a software company.

When people ask me I say I love the car and I hate the app and basic features for charging and departures. I’m getting to the point where I may not buy another Ford EV without a major change in how the system works. It’s so difficult to control the charging, charge level and departures and even when it’s working you sit there and watch the app spin for a minute for every setting.
 

rhfritz

Well-Known Member
First Name
Rob
Joined
Nov 20, 2022
Threads
5
Messages
64
Reaction score
31
Location
MD
Vehicles
2021 MachE
Country flag
Sometimes the issue is the amount of jungled coding itself too. Developers will sometimes just comment out code (Instead of deleting it, they make it inactive by making it a comment in the lines.) This adds so much bloat that it can cause issues since the computer still have to go through it and load it. Almost every app developer does this, even though it's not the right way.
Sorry, the above statement is incorrect. I am a software developer and write software for embedded devices, called firmware.

Commented out code does NOT exist in compiled code, it is stripped out. And I seriously doubt that the issues here are because the code is interpreted, like some scripting languages.

That being said, as others above have indicated, the problem is both with how the specification for the code was written and how it was tested. And of course, how Ford prioritizes fixing those bugs.

Personally, I'd like the source code to be open source so that I could fix some of these bugs myself. Periodically having to get to a traffic light to reboot the car so my phone connects is really annoying.
 

Shkval2

Member
Joined
Sep 2, 2022
Threads
0
Messages
20
Reaction score
21
Location
California USA
Vehicles
2023 Premium RWD
Country flag
In my 20+ years in the business, it ultimately comes back to priorities - where do the resources go, and what are they working on.

Development teams could spend 100% of their time fixing bugs and ship zero new features (not usually a popular choice) or 100% of their time delivering new features to a system that gets increasingly unstable, and at some point will probably fall over completely.

Where you are in that continuum all depends on the priorities of Management / Product Owners. The vast majority of the time it is a delicate balance between the two.

For armchair quarterbacks out there it seems like an obvious thing to do, but these systems are, to paraphrase South Boston, wicked complex.

Personally I'm pretty happy with the Ford software - maybe I cut them way more slack then the average person, but I think given the task at hand, they are pulling it off.

Consider the Audi Q4 e-tron, which has been out for two years, is due for a dealer-only software update to allow for...wait for it...OTA updates. Other new BEVs out there with OTA capabilities have received only a handful of updates in the past year. Tesla of course has nailed it, but they've had time to sort it out.

All in all, Ford ain't doin' too badly.
Having owned a Model 3 for 4 years and over 100k miles, Tesla software is improving but they have by no means “nailed it”. Plus: my display almost never goes black while driving anymore. Minus: Frequently used controls and displays change their UI and method of operation so often that I approach any OTA update as a “how did the car change this time?” mystery to be solved.
 

hprose

Well-Known Member
First Name
Harvey
Joined
May 17, 2022
Threads
0
Messages
188
Reaction score
122
Location
Pinellas Park FL
Vehicles
F250 and a Mach-e on order
Occupation
Financial Advisor
Country flag
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.
I get continual update for Windows, Apple IOS, phone apps and even Turbo Tax. Why would Ford Sync be different. Everyone uses software differently and some faults only become noticeable after a certain sequence. I’m an ex systems analyst and programmer. I also beta tested software for major providers to find bugs, and there were many. My use of Sync has been pretty good and improving. Many if not most Car Play or PAAK connectivity problems are the phone. There can be millions of lines of code. Fixing one thing can break another. If they weren’t investing in software you wouldn't have Had a whole new interface. There is also the problem of getting information of bugs to the right people at Ford. BTW I type the word information about 10 time for auto correct to accept it. Talk about bugs.
 

MellowJohnny

Well-Known Member
First Name
Christian
Joined
Nov 16, 2021
Threads
69
Messages
1,257
Reaction score
2,000
Location
YYZ
Vehicles
2022 Mach-E Premium AWD
Occupation
Solution Architect
Country flag
Having owned a Model 3 for 4 years and over 100k miles, Tesla software is improving but they have by no means “nailed it”. Plus: my display almost never goes black while driving anymore. Minus: Frequently used controls and displays change their UI and method of operation so often that I approach any OTA update as a “how did the car change this time?” mystery to be solved.
The "nailed it" was specific to the ability to push OTA updates - the fact that they arrive on a fairly regular basis, not that they work well (or don't) when they arrive. Contrasting that against other EV manufacturers, like Audi, who up till now had no OTA capability. Or others who claim to have it, but rarely, if ever, push anything.
 

Shayne

Well-Known Member
Joined
Aug 9, 2020
Threads
18
Messages
3,341
Reaction score
2,489
Location
Northern Ontario Canada
Vehicles
2021 MME4x Prem
Occupation
Retired
Country flag
I suspect the code is far too large to store on a USB stick.
Wow! 😲

who I worked with at Oracle
Virtual Box baby awesome tech/software 👍

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.
+1 we can unlock and open the car, start it and drive it all with Bluetooth and our phones so why do we need to go through their server to remote precondition our cars? Safety issue I think not.
 

Behoff

Member
First Name
Brian
Joined
Sep 15, 2021
Threads
3
Messages
22
Reaction score
9
Location
Middle Grove, NY
Vehicles
2021 Mustang Mach-E
Occupation
Retired
Country flag
I worked in software my whole working life, and I find a lot of the Ford user facing software frequently annoying. One of the basic tenets of user facing software is that, when you give users the opportunity to 'customize' their settings, the data that supports those settings is NOT YOURS TO PLAY WITH!!!!!!

I don't know how may times I have gotten into the car and found that my radio presets are totally different than they were when I parked it. Or the seat temperature. Or the drive mode. Or the charge schedule. (that one is particularly irksome because a few weeks ago I was taking a longer drive than usual and after coming home with 50% charge, the next morning instead of finding my specified 90% charge, I found it had done nothing!) Need I go on?

This is called user experience. And like it or not, it is soon going to be conflated with driving characteristics as a criterion for purchase.

When you design the software, the data that defines the user's preferences should be separate from any upgrades you perform! I suspect that the programmers that were recruited to this project came from teams that managed car performance management, which does not have to consider the user. But they need to take the user into account. Right now, while I am fairly happy with my Mach-E, I would not recommend it to friends without major caveats. Caveats that - as a former software engineer - are bewildering!
 

Schwartzcynthia

Well-Known Member
First Name
Cynthia
Joined
Aug 1, 2022
Threads
2
Messages
83
Reaction score
44
Location
Austin, TX
Vehicles
2022 Mach E Premium RWD
Country flag
Honestly a lot of these bugs are inconsistent so it makes it really hard to have steps to reproduce. Along with this, clear logs after reproducing it are not really something they get from end users.

You can never have software be 100% perfect, things crop up a lot. The CarPlay "bug" for example. You're working with a system that is half if not mostly controlled by Apple. The "bug" could be iOS itself.

Now for issues they are aware of, it can come down to how many users are affected and does it pose a security risk. If not, it's going to be deprioritized. On top of that, they need to figure out if it's on specific configureations only or on any. Then continue to isolate the issue out. This takes a lot of time. There are bugs in iOS that have been there for years an Apple has no plans to address them.

Sometimes the issue is the amount of jungled coding itself too. Developers will sometimes just comment out code (Instead of deleting it, they make it inactive by making it a comment in the lines.) This adds so much bloat that it can cause issues since the computer still have to go through it and load it. Almost every app developer does this, even though it's not the right way.

Then after all that, it could be down to other priorities that are pushed by product managers that they want to get to market. A lot of the time, they hope the new feature will fix the bugs magically. (Sometimes they do actually.)

So there isn't a direct answer to why it takes so long. It's not an easy process to deal with, and on top of that a "bug" to you might actually be expected behavior to the engineers.
I have an Android phone and haven't had most of the problems people are complaining about...
Sponsored

 
 




Top