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

Tesla Needs an Army of Developers!

This site may earn commission on affiliate links.
A few of my observations/opinions on the state of the Model S software:

1. The car has a lot of promised software features.
2. The car has even more expected features.
3. The ratio of implemented features to promised features is below 1.
4. The ratio of implemented features to expected features is FAR below 1 (for example, no map caching, GPS favorites, back-up camera guidelines, etc.)
5. The degree of polish on implemented features is far from where it needs to be. (UI generally looks awesome, but seemingly simple expected features like GPS favorites or map caching just aren't there...browser implementation is reportedly questionable, etc).

I understand that it was more important to begin production on the Model S with v0.5 software instead of polished software. I also understand that Tesla is certainly making headway and adding a lot of improvements to the software.

But it is also my feeling that the Model S software is still a *long* way from where it needs to be. Based on the rate of implementation of new features--and the degree to which those features are polished (or not), it seems like it could be years before the car is where it needs to be software-wise.

I don't intend this to be a knock on Tesla. I can't wait to get my car, and I know it will be very exciting anticipating new releases with new capabilities.

But from all of this, I gather that the software development team at Tesla is much too small. Does anyone know approximately how many developers Tesla has working on the car's software? At any rate, it seems to be several times smaller than it needs to be!

What do you guys think? At the current rate it seems we won't have most of our expected functionality for another year or two.
 
There is Brooks's law - Wikipedia, the free encyclopedia. So maybe more isn't better. I am not a software developer but do deal with increasing overhead with more people on my engineering projects.

In reality setting up the system, and setting guidelines is a lot harder and more time consuming than producing the stuff that goes on them. So it might not be hard for Tesla to implement remote cooling or whatever feature you want. Not to mention without a web portal/phone app a lot of functionality won't be what it needs to be.

Be patient I don't think it will take long (maybe another 3-4 months) for Tesla to get 95% the way there (at least as to what is promised, not what is being suggested on these sites).
 
I think Tesla has/had a plan to encourage 3rd party development of apps for their dashboard system, so they may tend towards "lean" in the hopes that outside developers will step-up. Given the small number of cars on the road right now, the market for such apps is very limited so they probably aren't going to get stuff from those looking for big profits. On the other hand, I bet there are a fair number of software developer customers of Model S, and so maybe they will release add-on software as freeware someday?

I wonder if the process of getting what one needs to do said app development is easy enough to do already, or if that would slow down people who are otherwise interested.

Random idea:
I wonder if it would be possible for javascript on this forum to read from the Model S settings to know what kind of dashboard materials are in the car and set a matching theme so that browsing TeslaMotorsClub from model S looks integrated with the rest of the car?
 
There is Brooks's law - Wikipedia, the free encyclopedia. So maybe more isn't better. I am not a software developer but do deal with increasing overhead with more people on my engineering projects.

I do work for a software company, and I understand the sentiment--but Brook's law is a bit of an oversimplification. Assuming Tesla is using proper object-oriented techniques as I'm sure they are, the suggested problems proposed in Brook's Law can be mitigated.

TEG: My guess is that 3rd party apps will be sandboxed from the Tesla-provided features. That is, I doubt that developers will be allowed to "add on" to the media app or the navigation app, but will only be able to create separate functioning apps. As opposed to having multiple media apps in the car (one provided by Tesla, others by 3rd party developers), I'd rather have one feature-complete media app.
 
@Brianman says there's an SDK forthcoming before the sun explodes.
I wish it was already out so I could have something to do while I'm waiting for my VIN, updated delivery window, etc.
In the meantime, maybe the Tesla-owner/programmers should come together and get organized.
There is a lot of inherent risk in opening up the car to an SDK, however. I am glad they are taking their time.
 
The assumption is that none of the software is written. It may already be planned for a future release, may need final testing, etc. We can't know from our seat.

And if it wasn't written ... ramp time for new engineers, higher probability of bugs introduced with larger teams, Mythical Man Month syndrome (where everything grinds to a halt because of all the meetings required for communication). Like every other business, I have no doubt that Tesla could use a few more people on ALL their teams.
 
I am a software engineer and predicted this in other threads. They should have used Android.

That said, if they insist on building it all from scratch then they are doing it the right way: implement the bare minimal required to be functional, then iterate quickly. See Agile Software Development.

I'm sure that they could use more resources, who couldn't? But much larger more sophisticated systems have been built by a team of 5. Throwing bodies at a problem is rarely (if ever) the best bang for your buck.

They seem to have a good base to build on, I think we'll see feature delivery accelerate as they move away from building infrastructure (the stuff you never see) and on to just adding functionality. Remember there are probably several person years worth of an iPhone and Android app that we have yet to see.

Think of it like building a house. Doesn't it seem like it takes an eternity from buying the plot of land to getting a slab of concrete on it? All the planning and organizing and permitting and digging holes. But then once you get there, the thing goes up in a flash. So it is with software.

Again, had they used Android they wouldn't have had this problem. But we've discussed that thoroughly elsewhere.
 
I'm just a good 'ol boy who loves EV's. What's an SDK please?

SDK stands for Software Development Kit. A set of tools and documentation to allow programmers to develop software to run alongside the manufacturer's own software in the car.

For comparison, look at the iPhone. When you open the box, it comes with a dozen apps on the screen, all provided by Apple. Then, you go to the App Store and can download and install from a choice of hundreds of thousands of new apps written by third-party developers. All those apps were written using Apple's published SDK.

The thinking is that Tesla will follow the Apple route, and release an SDK to allow third-party developers to expand on what the car can do.
 
As another software guy I suspect they are also being a lot more careful with the v1 product - you don't want the system to sporadically abend in the middle of driving. To drive up quality you often need to limit focus, especially with teams that are relatively immature. I would expect that we'll see some increase in user-visible feature delivery velocity in the next 12-24 months. The SDK, as indicated, ought to be sandboxed for automotive systems.

Whether it's the Microsoft automotive solution or any other stock one I am generally disappointed at the attention paid to the user interface polish. They all look quite primitive compared to what I've come to expect from the modern desktop/tablet app. I'll be able to comment further next week once my Model S arrives. :)

Have hope folks and like all of you I'm looking forward to the SDK! In the mean time check out the moj.io project which might keep you satisfied in the interim.
 
I seem to recall a video review somewhere here ... posted it feels like 3 months ago, narrated by someone in Apple software? ... showing us where Fisker development was with their central console.

They seemed to be in far worse shape than Tesla ... (and I am not one to criticize Fisker ... I want good news out there for ALL EV's)

But not having seen either, (aside from Tesla test drive) ... what do I know? :)
 
I'm also a software developer. I am personally interested in building apps for the Model S - I have several killer ideas. I asked both @elonmusk and @TeslaMotors on twitter about developing apps and (not surprisingly) got no answers (they probably only get about a million tweets a day after all!) I have seen on several videos and other sources that they definitely are planning to build an app infrastructure a la Apple, but let's remember this car was developed in record time - so I'm sure there are quite a lot of rough edges to iron out - probably in 6 months or less the software will be a lot better and more stable and I'm sure the app infrastructure, API, SDK etc. will emerge sometime after that...
 
I am a software engineer and predicted this in other threads. They should have used Android.

That said, if they insist on building it all from scratch then they are doing it the right way: implement the bare minimal required to be functional, then iterate quickly. See Agile Software Development.

I've heard they are using the Qt framework. While I don't know much about either Android or Qt, it seems Qt is large framework and also allows use of the Linux libraries. So I wouldn't know which areas need to be created "from scratch", compared to Android.

I'm sure that they could use more resources, who couldn't? But much larger more sophisticated systems have been built by a team of 5. Throwing bodies at a problem is rarely (if ever) the best bang for your buck.

They seem to have a good base to build on, I think we'll see feature delivery accelerate as they move away from building infrastructure (the stuff you never see) and on to just adding functionality. Remember there are probably several person years worth of an iPhone and Android app that we have yet to see.

Yes, it seems the missing parts are more in the area of additional functionality, as opposed to basic infrastructure. (Except perhaps for the smart phone remote access apps, which however seem to be in the "working prototypes" phase already.) I'd expect they will increase the team size as Tesla becomes more profitable.

But we've discussed that thoroughly elsewhere.

Where? Could you provide a link?
 
I'm just a good 'ol boy who loves EV's. What's an SDK please?

Software Development Kit. Sorry. Programmers are used to acronyms. It's a set of information on how to write computer programs for the car, and it typically makes the computer programs easy to write.

- - - Updated - - -

I am a software engineer and predicted this in other threads. They should have used Android.
...
Again, had they used Android they wouldn't have had this problem. But we've discussed that thoroughly elsewhere.

A Java-centric Linux operating system? You really think that is energy-efficient and snappy? I love how responsive the user interface is. No, not consistent and efficient on Android. They went with an embedded Linux distro on C/C++ for a reason. I don't know what they chose, but I'm sure they will be remembered as having chosen wisely.
Here's a Tesla job to review. No proof they are actually needing a Linux platform, but they may be saying this is an easier skill to find and they will train the engineer on the OS rather than disclose its details.

If it had been up to me, I would have gone with QNX and made sure to license the support for Bluetooth stack, 802.11 support, GPRS, etc.

Java is the new Fortran: popular, ubiquitous, and bifurcated. I code in it all the time. It just isn't fast enough for the fastest family car in the world!
 
Software Development Kit. Sorry. Programmers are used to acronyms. It's a set of information on how to write computer programs for the car, and it typically makes the computer programs easy to write.

- - - Updated - - -



A Java-centric Linux operating system? You really think that is energy-efficient and snappy? I love how responsive the user interface is. No, not consistent and efficient on Android. They went with an embedded Linux distro on C/C++ for a reason. I don't know what they chose, but I'm sure they will be remembered as having chosen wisely.
Here's a Tesla job to review. No proof they are actually needing a Linux platform, but they may be saying this is an easier skill to find and they will train the engineer on the OS rather than disclose its details.

If it had been up to me, I would have gone with QNX and made sure to license the support for Bluetooth stack, 802.11 support, GPRS, etc.

Java is the new Fortran: popular, ubiquitous, and bifurcated. I code in it all the time. It just isn't fast enough for the fastest family car in the world!

The idea that Java is slow is a myth left over from the early days when it was slow. I've never met a C++ program that I could out perform with a Java program. I convinced my computer graphics prof in college to switch to Java because I did a project in Java instead of C++ and it was the fastest of anyone's including the prof.

Besides if you really feel that way Android does allow you to write native code too. So that's not an excuse to sacrifice working tested features like Bluetooth and the best navigation and maps on the planet.
 
The idea that Java is slow is a myth left over from the early days when it was slow. I've never met a C++ program that I could out perform with a Java program. I convinced my computer graphics prof in college to switch to Java because I did a project in Java instead of C++ and it was the fastest of anyone's including the prof.

Besides if you really feel that way Android does allow you to write native code too. So that's not an excuse to sacrifice working tested features like Bluetooth and the best navigation and maps on the planet.

Tell you what, why don't we spare everyone else an NP-incomplete debate about language efficiencies? If you would like to know what I'm done talking about, read this fine article at Intel. I have always found that disagreeing with someone politely and giving them information to pursue on their own is more effective than actually arguing with them. Java wasn't around when I went to college.

Also, to be clear, I meant efficient and snappy, not slow/fast. Some of the fastest machines in the world run Java: Sun Oracle Exalogic.

Technical huffing and puffing aside, a real reason, I suggest, that Tesla Motors dropped any notion of Android like a bad habit was that Oracle inherited the Sun lawsuit against Google over the Android JVM, which allegedly contained stolen, proprietary code. Tesla Motors knew enough to stay clear of that big-dog Silicon Valley brawl.

JB Straubel probably said the most about things here.