Lessons From the World of Autonomous Driving for Software Applications
We are heading into a world of autonomous driving. Tesla launched its revolutionary Autopilot last year. Google has been publicly testing self-driving cars. Mercedes and Nissan already have cars with some level of automated driving in their cars. Even Uber is actively looking into autonomous driving. This brings up interesting possibilities, but also some challenges.
Last month, we learned that Tesla’s Autopilot may have been a factor in a fatal accident, its first fatality in almost 130 million vehicle miles, according to the company. The coming days will surely see a spirited discussion about autonomous vehicles. While I have no desire to contribute to the discourse, I sincerely hope this will not become a roadblock to the development of this important technology. On the contrary, as a serial entrepreneur in the world of software solutions, I appreciate what Tesla has done, and would like to draw some lessons that are relevant to software applications.
First, some context (Just in case you were on an extended sabbatical in the Himalayas)
Late last year, Tesla unveiled its revolutionary Autopilot, a major advance in the world of autonomous driving. The internet is filled with pictures and videos of of a dog driving a car (??), people sleeping at the wheel of a moving car, and cars picking up its owners on its own. What’s next? A car that can order your lunch? It may be sooner than you think.
Software is the biggest factor behind these extreme innovations. Is it not ironic that a car company has used software to deliver elegant solutions to real world problems, while software applications are considered to be “innovative” just because they popularized emojis? Talk about the soft bigotry of low expectations!
What can software applications learn from Tesla’s Autopilot?
Do as I need, not as (I say) I want
When you need to change lanes, you want to do it as safely and as quickly as possible without getting in anybody else’s way. Clicking your turn signal is a clear indication of your intention. It’s a simple instruction that triggers a complex set of interconnected actions that gets you to your stated end goal. That is exactly what Autopilot does.
Software applications on the other hand, tend to take a transactional approach to user input. Each input is processed in isolation, and context rarely carries over to the next instruction. For example, a user may search for a flight. The next step is likely to be booking a rental car or a hotel room. However, software rarely ties these transactions together. This is changing with the emergence of bots, but applications still have a long way to go.
A big data problem? Or a big data solution?
Tesla’s Autopilot is not a purely software solution. It reads signals from a multitude of sensors that are measuring many parameters on the road in real time. It interfaces with the navigation system, and possibly includes traffic information. These signals need to be synchronized and stitched together, so that key decisions can be made in real-time in a car that is moving at a very high speed. Software applications rarely get this complex when it comes to having human lives on the line.
Big data today remains a huge deal for the average software application. If Tesla can squeeze this kind of intelligence into a moving car, there is no reason software applications cannot do the same, given the relatively unconstrained availability of processing power and bandwidth. Imagine if your customer interfacing software could notify you in advance if a customer is likely to churn? That’s already possible, but the world of software has a lot of catching up to do.
It’s a learning opportunity
If the owner grants permission, every Tesla transmits data about the car, and where it has been back to the company. Therefore, each driver is effectively helping crowdsource the Autopilot training, which is in addition to any new software functionality which is deployed over the air. In other words, the growing network of Tesla vehicles is a real-world, real-time learning engine that Tesla draws on to improve its software, its cars, and ultimately, its customer experience.
Unfortunately, in the world of software, learning is not a closed loop process that is built into the application. It still requires human intervention to analyze the signals, and take the insights back to the development team. This should not be the case. Applications should be able to learn from the myriad of signals generated by users and external sources to get better on the field.
It’s disruption in action
Mercedes, BMW, and Nissan have over 200 years of automobile industry history between them. They have all started selling cars with advanced autonomous driving capabilities. Despite previous experience, they were beaten hands down by by an upstart that has been around for a little over a decade. This is merely the first round in a long battle, but the winner of the first round is clear.
It’s time software applications drew some inspiration from the most innovative automobile company in the world. No more is it just about the user experience, delivery over the cloud, or a comprehensive mobile experience. We have to focus on the customer’s needs, and give them what they need, before they even realize that they need it. We need to disrupt the status quo. Otherwise, we risk being disrupted by the next innovator.
There is such a thing as hubris
When Tesla started working on the Model X, they had ambitious goals that had not been tried before – falcon wing doors that needed just 11 inches of space to open, and “monopost” rear seats that allowed easy access to the third row, to name a few. These were extremely complex features that have not been replicated in the automotive world, and were, at least partially, responsible for a two-year delay in the launch of their car.
However, these features don’t help the customer. A door that needs just 11 inches of space to open can help you get into that tight parking spot or garage. How many of us can actually squeeze into such a narrow space, let alone get into a car? And this is only the rear door – the front door is a conventional side-opening, and requires more room. The monopost seat is an engineering marvel, but it can neither move nor be folded. Forget about that trip to IKEA.
Despite these questionable features, the Model X is a phenomenal car. It bested a Bentley Bentayga, the world’s most expensive SUV (base price $231,000 vs. $126,700 for the Model X), in a recent comparison on every parameter, including luxury features (except for the amount of wood and leather in the interior). It was so good that MotorTrend tested it against two Italian mid-engined supercars. And then tested it against one of them while towing the other (the Model X still almost beat it!)
The software world is littered with the carcasses of many cool features that did nothing for the user – remember Microsoft’s Bob and Clippy, Apple’s Newton and Google’s Lively? Sometimes, great products fail for reasons that are extrinsic to the product – remember Sony Betamax? Companies tend to get carried away by the “coolness” of their product, and in doing so, they forget about the customer, the most important stakeholder.
After hubris comes redemption (Well, sometimes)
Tesla publicly acknowledged its mistakes after it launched the Model X. After this fatal accident, they have been proactive about providing information to the NHTSA, and informing the public about what it has learned so far. I am sure they will do everything they can to learn from it to make the next version of Autopilot a quantum leap over the current version.
You see the same phenomenon occurring in the software world. Apple, the company that gave us the Newton, created the iPhone, one of the most phenomenal products ever made. Microsoft has given us the Kinect, and the Hololens. To be innovative, you have to accept the possibility of occasional failure. And when that happens, accept it, learn from it, and move on. It will make you better, and your customer (and you) will be better for it.
The world of software applications now has the unique chance to make a difference to human lives and business. The scale of our achievements will be a function of the size of our ambitions, and the depth of our determination to realize them. We can deliver on this promise with a relentless focus on the needs of the customer. Tesla is well on its way, and I wish them the very best. Let’s just make sure we are not left behind.
All Images are Property of Strikedeck