Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

Programming for Software Improvements

This site may earn commission on affiliate links.
Yes, it would cost Tesla more right now to start making the badly needed improvements to their software process, development staff, and the software itself.

But the longer they wait to do this - the harder it will get - and the longer it will take. And if they don't do something soon about this, the situation could be much more challenging when they're shipping 500K cars per year.

Tesla vehicles are really consumer products and need to be robust. Early Tesla adopters are typically technically savvy, and have had a higher tolerance for issues with their vehicle. It's clear from the fora threads I've been surfing that that situation is slowly but steadily morphing into the expected consumer marketplace. Tesla's electronics engineering (both HW and SW) needs to rapidly adopt a much more rigorous development and release methodology which includes a formal VoC (Void of the Customer) process, perhaps using Apple as a decent benchmark. Apple does not always get things right, but the slick engineering organization is able to develop and release robust consumer products on a breathtaking cadence which are immensely successful in the marketplace. Tesla needs to emulate something like the rigorous Apple development and release methodology, certainly before the Model 3 is a reality, or they risk a large disgruntled customer base which will limit growth.
 
Tesla's electronics engineering (both HW and SW) needs to rapidly adopt a much more rigorous development and release methodology which includes a formal VoC (Void of the Customer) process, perhaps using Apple as a decent benchmark. Apple does not always get things right, but the slick engineering organization is able to develop and release robust consumer products on a breathtaking cadence which are immensely successful in the marketplace. Tesla needs to emulate something like the rigorous Apple development and release methodology, certainly before the Model 3 is a reality, or they risk a large disgruntled customer base which will limit growth.

Funny you should mention Apple. The author of this article would agree with you, I think. He even mentions Tesla's software being an issue, writing, "Tesla's software could use some work." The article, "Apple Should Buy Tesla:" Apple Should Buy Tesla - Business Insider
 
Agree with every poster here. When I got my S 13 months ago I thought "very cool" when it came to software, and I was more than happy to look past some of the small (shuffle, no pre-heating of seats+rear defrost from app, no "charge to be ready by x o'clock" for example) blatantly missing functions as well as big ones (nav-range predictions, proper browser, custom regen setting including 0 regen, valet mode etc).

13 months in and at least 10 OTA updates I'm not that impressed. If they can't do this right I'm not sure I want to ride along with the car driving - the quality of autopilot is and will be 99% dependent on solid software coding. In fact, this is my ansolute biggest concern with Tesla. This and their long wait times for service and unproffessional and inexperienced first-line personel at the service centers.

Also, got a mail from Tesla today describing the D, autopilot etc. One of their "bragging points" (again) was 6.0. Under this headline it reads as one of the "features" it seems they're very proud of: "...Calendar displaying today's agenda on the screen". Makes me cringe. If I was the guy who had "made" the calendar feature I'm not sure I'd be very proud. Sure it displays what's in my phone's calendar, if the app is running and manages to sync, in text, with basic NAV integration but to me it's kind of like a solution looking for a problem. To me it seems they made it so they could put one more icon on the top row. Where the Apps icon shoulda' been...
 
Last edited:
I find it ironic that Tesla "challenges" a team to find security flaws in the Model S ...

But they wont allow the talent here to develop on their behalf.

How hard could it be (lay person asking) to reveal the code for the media player and allow those here to make it worthy of the S?

They submit their revisions to Tesla, Tesla folks test and certify, then roll out. Is that too simplistic thinking?
 
I find it ironic that Tesla "challenges" a team to find security flaws in the Model S ...

But they wont allow the talent here to develop on their behalf.

How hard could it be (lay person asking) to reveal the code for the media player and allow those here to make it worthy of the S?

They submit their revisions to Tesla, Tesla folks test and certify, then roll out. Is that too simplistic thinking?

Lay-man here too. Could it be the code is unstructured and embarrasingly ugly? ;)
 
I find it ironic that Tesla "challenges" a team to find security flaws in the Model S ...

But they wont allow the talent here to develop on their behalf.

How hard could it be (lay person asking) to reveal the code for the media player and allow those here to make it worthy of the S?

They submit their revisions to Tesla, Tesla folks test and certify, then roll out. Is that too simplistic thinking?

It's slightly more complicated than that, but fundamentally what you suggest is the basis of an open source software development model. Tesla would be the "gate keeper" for the released code after testing and qualification. There are a few legal issues to resolve -- non-disclosure, IP ownership, etc, and most importantly indemnification related to using unreleased software in a 5,000 pound moving object.

To engage the broad talent of the user community would likely require Tesla to release a workable development environment (compiler, linker, debugger, simulator,...) as a way for the users to test their code. That is also software which is more complex and would require a high level of support. All of this is possible, but requires a rather different mindset to the closed environment we see now.

Elon's breathtaking move with the patents gives me hope that they'll find the will to make open source happen.
 
I find it ironic that Tesla "challenges" a team to find security flaws in the Model S ...

But they wont allow the talent here to develop on their behalf.

How hard could it be (lay person asking) to reveal the code for the media player and allow those here to make it worthy of the S?

They submit their revisions to Tesla, Tesla folks test and certify, then roll out. Is that too simplistic thinking?

Short answer: That's just not how things work in engineering.

Long answer: You need their tools (which you may need a license for), you need their build environment (which you may need a license for), you need dependent code (which you may need a license for), you need to be sure there aren't trade secrets lurking in other linked code, you need a testbed (simulator, real car), you need to know their processes for building, signing, qualifying code, on and on and on...

Software engineering is hard guys. Now maybe this is a short quick fix (for an insider) to get something like shuffle in, but no company on the planet is going to farm that out to the first folks who offer to help. Not gonna happen.
 
In the mean time: Tesla, I offer my services, free of charge, to help improve the Model S UI. I will happily dedicate a substantial amount of time to coding and testing whole lists of feature requests if you will allow me to do so. I'll happily sign NDA's and whatever else is needed to make this happen, as well as grant you full rights and ownership to any relevant code I write for the Model S. Whether you accept my offer or not, just please do not make everyone wait an eternity for such simple software-only features.

I offered that as well to help them out with their 3rd party application story, since I know how hard this is.

Twice.

At 1/10th of the market rate. (Basically for Health insurance + stock options).

I have 20+ years experience in C++, mostly centered on enabling 3rd party development. I created software that still runs on over a billion devices today. The latest API & tool infrastructure I designed are in active use by over a million developers, and used by apps that get 5 million+ downloads per day. I've shipped commercial software on all major OS's and devices.

Nada. Not even an email back from them. No interest.

I think Tesla started out as an engineering company, but now it's solidly a car company, where the software is a secondary afterthought. Just like every other vehicle manufacturer out there.

The sad thing is, Tesla has such a massive following from passionate developers, that if they only enabled even highly restricted sandboxed 3rd party development they can pretty much get development of most of the non-firmware components for free. And there are still ways to keep the quality high.

But no.
 
Deon, this concerns me deeply. Really, no reply?

Well, an automated reply (both times) that said: "Thanks for your application".

I know that people who offer to offer to work for free/cheap aren't generally motived after a while, which is why I added the stock options to it. And I added significant references and proof (easter eggs).

I chalked up their lack of response into one of:

1. They're not interested in enabling 3rd party development
2. They underestimated the work that it takes
3. They already had someone experienced enough to do this

Since they're nowhere close to releasing anything 18 months later (first contact), I think scrap #3.

I have a real (sad) hunch that it's #1. That doesn't mean it can't change in the future.
 
"Software engineering is hard guys."

It's pretty easy to build version 1 of anything - quickly write software to implement new functionality - that appears to provide quite a few of the desired features.

But, if the software isn't designed well, there is risk that the software will be unreliable (subject to bugs) and require increasing amounts of effort to fix problems and implement new features, requiring additional software developers and/or dragging out release times.

If Tesla's early focus was to push out software quickly, without taking the time to design the software (which is complicated by the number of different processors in the Model S, the requirement to support multiple and evolving configurations, and to do so in multiple languages in multiple countries), Tesla could be faced with an exponentially increasing difficulty to add new features and/or fix problems, because poorly designed software can require major rewrites just to make even small changes.

And, this can be further complicated by not having an effective testing strategy. For something like the Model S, much of the software could be tested using automated testing tools - to verify the software works in multiple configurations - and the testing can be done frequently. And because they still appear to have bugs getting into the released software, resulting in start/stops during the rollout, their "beta" testing is still missing too many bugs - and could benefit from a more methodical beta test and/or having more (qualified) testers participating.

While what Tesla is doing is considerably more difficult than writing a simple app for a smartphone - what they are doing is not unusual - something other companies have done with their software systems - for much longer than Tesla has been in existence.

And, if they haven't done the software engineering work to design in an effective software architecture and testing philosophy, this problem will only continue to get increasingly worse - and more difficult to fix. Their only choice, if they don't address this soon, might be to abandon completely the current software - and completely rewrite it.

And, as a Model S owner, I'd hate to see them do that - because what they would likely do is stop adding new features to the Model S, focus only on making critical bug fixes, and provide new features only to their newest cars. That's basically what the other car manufacturers do today - and not what I expected when I purchased my Model S in early 2013 - with Tesla's promise to see software updates for the life of the car.

Tesla probably has enough supporters in their current ownership community, with considerable experience on delivering quality software products with systems at least as complicated as the Model S - and it would be easy to reach out for their advice on how to get to a point where they can more effectively release new features - faster - and with higher quality...
 
This thread is full of speculation on things, the details of which none of us know. It's certain that things aren't prioritized as we'd like, but that could be for lots of reasons, from incompetence through to priority shifts with small teams, etc.

Tesla is a big for-profit company. They are no sooner going to say "sure come on in and join our team Joe Random who we don't know, skip our usual hiring process, skip seeing if you work well with our team and save us!", then that spec script you wrote for Batman vs. Zombie Smurfs is going to be read by Warner Bros.

Want to help Tesla? 1) Buy their products if you like them and let them know why you didn't if you don't. 2) Keep giving them feedback 3) if you feel you must write code for them, apply to work there like a normal human being.
 
Did you actually apply? This sounds like what you're looking for:

Careers | Tesla Motors

There is also a senior software engineer position doing lower level work, if that's more your thing.

Or did you send someone an email or something?

Well, an automated reply (both times) that said: "Thanks for your application".

I know that people who offer to offer to work for free/cheap aren't generally motived after a while, which is why I added the stock options to it. And I added significant references and proof (easter eggs).

I chalked up their lack of response into one of:

1. They're not interested in enabling 3rd party development
2. They underestimated the work that it takes
3. They already had someone experienced enough to do this

Since they're nowhere close to releasing anything 18 months later (first contact), I think scrap #3.

I have a real (sad) hunch that it's #1. That doesn't mean it can't change in the future.
 
Did you actually apply? This sounds like what you're looking for:

Careers | Tesla Motors

There is also a senior software engineer position doing lower level work, if that's more your thing.

Or did you send someone an email or something?

Yip, went through that path both times. Of course they've never posted a job for an AppStore/Extensibility/API designer, so I had to add that into comments. I would hope that whatever HR person pre-screens applications, passed my offer on to the head of development.

Even if they didn't I would still be a direct match for the jobs that I applied for (e.g. an app designer for the touch screen), so they could have still contacted me, but I can imagine there being an issue with me being overqualified for that. But who knows, maybe they had so many applications that mine got lost in the noise.

On the other hand, I don't know about Silicon Valley, but getting experienced C++ developers in Seattle area to even apply for your job postings is hard. We never get inundated with job applications since 2001. C++ senior positions would sometimes stay open for years on end, especially in perceived 'boring' areas like API design. I thought it was just the company I worked for at the time, but I'm in a startup now, and it's the same.

So I'm quite surprised that they didn't even get back to me on my offer to build 3rd party extensibility for them - but like I said - I think they're not seriously interested in building that.
 
Similar experience here. My team, within a company of roughly 600 employees, only had a handful of candidates over the past couple years. Most were out-of-state and many decided to take an offer in California. The only hire we got since 2012 was local, but it didn't turn out well and he was fired. One of my highly skilled former team members is now working in CA. It's hard to compete with Silicon Valley in the tech industry.
 
I'm disappointed to read this thread. I'm taking delivery of my Model S this weekend. I've been an IT professional for over 25 years and one of the biggest draws I have to this car is the ability for it to evolve via software changes over time. To me, that's a huge value prop, on par with going green and great performance.

I don't think I really want the open source community coding my car's control software - would you want the FAA to do that for airline traffic control? However, I agree it's critical for Tesla to roll out relevant, reliable upgrades on a frequent and regular basis - we've all gotten accustomed to constant evolution over the last 5 years or so with our smart phones. I'd be happy with solid quarterly updates from Tesla...
 
I'm a software dev myself, and what I miss in this thread is the 20/80 rule... it takes 20% of the time to build 80% of the functionality, and it takes 80% of the time to build the final 20% (plus test/debug). And often the final 20% grows out of hand fast with scope creep and such, making it a never ending story.

The TS/OP sounds like a real dev too, as in way too optimistic in his estimates. Code up a shuffle function in a couple of hours? Sure if everything is aligned and all the pre work is already done, if you know the whole application (as in you wrote the rest also), all playlists etc. are available to you in a neat way, you might be able to get it done, but the devil is in the details. They probably would have done it already if it was that easy.
Probably the original developers already moved on to something else, the API between user interface, media player, and media holdings devices might not be straight forward, or even a third party media player might have been used with just a UI slapped on by Tesla, we don't know... So all in all it might take a new hire weeks to get it done.

What also might be the case (pure speculation) is that they might have a new revamped media component in development and don't want to waste resources on adding features on something that will be replaced soon anyway (again, this is pure speculation from my part).
 
I'm disappointed to read this thread. I'm taking delivery of my Model S this weekend. I've been an IT professional for over 25 years and one of the biggest draws I have to this car is the ability for it to evolve via software changes over time. To me, that's a huge value prop, on par with going green and great performance.

I don't think I really want the open source community coding my car's control software - would you want the FAA to do that for airline traffic control? However, I agree it's critical for Tesla to roll out relevant, reliable upgrades on a frequent and regular basis - we've all gotten accustomed to constant evolution over the last 5 years or so with our smart phones. I'd be happy with solid quarterly updates from Tesla...

Well, bear in mind that, as much as Tesla software could use improvement, it is still head and shoulders above any other car.