The Internet of Things is kicking in the afterburners on the digital transformation that started with the smartphone and ultimately will have us surrounded by smart, connected devices that anticipate our every need and desire. Soon, I’ll be able to just think a thought, and the world around me—my world, personalized for me—will respond to my wishes. Yes, life is good and getting better in the 21st century—as long as everything works the way it’s supposed to.
But nothing works perfectly all the time.
In the IoT world, my lights might not go on automatically. Or the thermostat might forget when I’m coming home. These are minor inconveniences, and life goes on.

But what if you’re in business and the hiccup brings your assembly line to a standstill, or causes millions of devices that consumers bought from you to malfunction? Or what if it’s a medical device that forgets what it’s supposed to do? Or a controller for the power grid? An autonomous car? The blades of a windmill? The potential for catastrophic or deadly consequences is frighteningly real.
Meet The Internet Of Things That Can Go Wrong
In the Internet of Things, there are two types of failure to consider. One is user experience failure, in which a device or service doesn’t work the way the user expects it to. The other is functional failure, in which the device or service works incorrectly or completely fails.
In either case, there is a whole range of opportunities for users to be disappointed, processes to go awry or equipment to shut down. The Internet of Things depends on an interconnected, interdependent series of physical and virtual events that create a given transaction. There’s the endpoint—the sensor or device—which is where we’re likely to look first for problems. This kind of hardware is usually fairly cheap, and durability and redundancy can be engineered in, to a point. Energy to power the device is an ongoing issue. That’s often a battery, which, on the bright side, has a predictable lifespan. But as we’ll discuss in a moment, circumstances can compromise battery power output.
Next, there’s the operating system (OS) that drives the hardware, the network that carries the communications (from Internet backbone to local connections), the IoT platform that connects the edge devices with the enterprise system, and the applications themselves that ingest and process the data and execute the responses. And at any step along the way, there can be third-party dependencies that create even more potential failure points.
Software is the glue that holds it all together and drives every IoT event, process and transaction from the endpoint to the enterprise’s back end. It is what makes the Internet of Things possible.
Look at General Electric, a leader at the forefront of the industrial Internet of Things. The company is putting sensors in everything—turbines and locomotives and all the things it makes—and yet its CEO, Jeffrey Immelt, is quoted in the New York Times as saying GE will be “a top 10 software company” by 2020. That’s an amazing statement coming from one of the world’s leading manufacturers.
So simply put, to get the IoT right, you need to get the software right. But as any enterprise CIO, developer or IT operations team will tell you, that is no easy challenge, even for software running in a data center, much less in the wilds of the thing-net.
A Hard Look at IoT Software
The issues that can plague IoT software are no different, really, than those that can negatively impact any enterprise software-development project or ongoing deployment. The pace of new feature development needs to remain insanely fast just to keep up with competitive pressures. The code can be less than perfectly written. New releases and updates—which are essential to keep IoT devices functioning and to remotely upgrade existing hardware with new capabilities—can inadvertently break something that worked before. Scan the tech headlines or the Apple message boards. It happens all the time.
Sometimes, a perfect storm hits with just the right combination of factors, whether it’s environmental thresholds like temperature, or unusual traffic volume, or some other anomaly that befuddles or breaks the software only in those specific circumstances, and couldn’t be (or wasn’t) anticipated in development.
Why Is IoT Software Such a Challenge?
Besides all the issues that normally affect software, the Internet of Things introduces a host of additional challenges, including:
• It is inherently distributed and complex, with numerous interrelationships between hardware, software, network devices and the back end that is running things.
• There is typically a high degree of geo-complexity, with devices and their supporting systems separated by great physical and logical distances.
• Further complicating geo-complexity, the devices themselves are often literally on the move in a vehicle or some other form of transport.
• Waning battery power must prioritize functionality over monitoring, thereby slowing or halting the stream of performance data necessary to manage the software.
If a problem is found in the software connected to remote devices, troubleshooting presents its own unique challenges. Among them:
• If the issue is with equipment, it could be far away or difficult to access.
• Actively troubleshooting an issue can consume excessive power at the endpoint device, potentially creating additional problems.
• Agile software cycles can introduce unexpected glitches.
• Non-standard connectivity protocols can make it difficult to remotely remedy software embedded in devices or otherwise remote.
The Data of Things
On a positive note, while software is a potential Achilles heel in the Internet of Things, it also delivers a hugely valuable, business-transforming asset: data.
The Internet of Things is a huge data-generating machine. At its most fundamental level, something is measured that triggers a response (or no response) over and over again, and every step spews out data. It’s the blood in the veins of the IoT. And it’s rich with insight.
It can tell you how end users, whether human or machine, are interacting with your things, in minute detail, helping you to remedy weaknesses and exploit opportunities. It can illustrate for you the precise consequences of interruptions or downtime. And it can quantify the contributions the IoT is or isn’t making to the business.
Gathering, parsing and leveraging this data is not an easy task, but it is well worth the trouble. Every IoT project should have robust data functionality built in from the start.
The Future Is (Almost) Here and Now
When the Internet of Things works the way it’s supposed to, it’s virtually transparent to us. Our world melds to our lives, responding to our personal needs and wishes. But it requires trust (and sometimes even a leap of faith). And to gain our trust, it has to work.
It’s a lot to get right. Gartner says that this year, more than $2.5 million will be spent every minute on IoT hardware alone. GE already has 10 million sensors installed and sending data from $1 trillion worth of equipment, according to the New York Times. And consumers like me are making our homes, cars and bodies smarter and more connected every day.
The stakes are high. The potential is great. If we get the software right, we can get the Internet of Things right. And a future that was once only the stuff of science fiction will be our reality not decades, but short years from now.
Jyoti Bansal is the founder, executive chairman and chief strategist of AppDynamics, a provider of application performance management software which delivers an end-to-end view of application performance, from the end user to the data center, as well as insights into customer behavior and the correlations between application and business performance. Bansal founded AppDynamics in 2008.