The Internet of Things is the buzzword of the tech industry. But it’s also an undeniable reality. The IoT has already triggered the fourth industrial revolution and will inevitably become part of our lives whether we like it or not. IoT has already found its way into a huge number of industries, and more and more companies are focused on grabbing a piece of the IoT pie.
The problem is, many companies delve into the IoT development without assessing or knowing about the key challenges that lie in their path. Many of these companies don’t even have a background in IT and software development, and are for the most part focused on delivering an internet-connected device that will keep them in line with the competition. Even those who do have experience in software and hardware design tend to view IoT in the same light as traditional computing and make terrible mistakes in their development.
As has been proven time and again, such an approach is a recipe for disaster and will only turn out to become a self-defeating goal that will lay waste to the manufacturer’s efforts and undermine IoT as a whole.
Here are four challenges every manufacturer and developer should consider when deciding to enter the IoT business.
The first thing to consider is how your device will connect to the internet and your cloud platform. This will depend largely on the environment in which the device will be used, and the kind of communication infrastructure that will be available to it.
For instance, if you’re creating a smart home device (such as a connected toaster) you’ll probably have access to a Wi-Fi home router or a ZigBee/Z-Wave IoT router, so your device will have to be able to support one or more of those transport mediums. However, in some settings — such as agricultural IoT or smart cars — there’s no access to Wi-Fi networks, and cellular networks might be your only possible connection.
You have to weigh your options and make design decisions based on the possibilities and tradeoffs that each provide. For instance, since transferring data to the cloud over cellular networks can be costly, you might decide to opt for more functionality on the edge or the use of the blockchain model in order to create IoT ecosystems that are less dependent on the cloud.
You also need to consider that IoT is a technology that’s still in its early stages and is undergoing a lot of changes and transformation. There are too many moving parts and competing trends. Many of the technologies that are being used today might become obsolete in the future.
Meanwhile, as opposed to computers and smartphones, which are replaced every few years, IoT devices are meant to have long lifespans. For instance, a smart-fridge must at least work for 5–10 years. Therefore, you must have a plan to make sure your devices will keep their connectivity as the future of IoT takes shape and new technologies replace old ones. I’ve discussed this issue in detail here.
Security and Privacy
IoT Security has always been an issue of contention. A first challenge that needs to be considered is that IoT security and privacy are fundamentally different from what we’ve come to know about cybersecurity. Here are the key security design points you need to take care of:
- Physical security: IoT devices are often left in the open, unattended and with no physical protection. You have to make sure they’re immune to tampering by malicious parties and can’t be hacked and manipulated with a flat-head screwdriver. You also have to protect any form of data that’s stored on the device. While it might be too expensive to embed a secure enclave in every IoT device, yet encrypting on-device data is important.
- Data exchange security: Securing data as it’s being transferred from IoT sensors and devices to gateways and from there to the cloud is also important. This will require the use of encrypted transfer protocols, but IoT security is more than just encryption, and should also take into account authentication and authorization.
- Cloud storage security: The data that’s being stored in the cloud is just as vulnerable as the rest of the IoT ecosystem. Your platform should be able to protect the data that it stores in the cloud, which should include proper encryption and access control.
- Updates: No matter how much you harden your product’s code and hardware for security flaws, vulnerabilities will eventually surface. Under such circumstances, you first need to have a plan to fix bugs and roll out patches quickly (not leaving bugs unfixed for five years). Secondly, you need to be able to provide your customers with the bug fixes in an intuitive and secure manner. Over the air (OTA) updates are a popular mechanism to update connected devices, though you have to make sure they don’t become a security hole themselves.
In terms of privacy, you should take into consideration that much of the data collected by IoT devices is subject to laws and regulations. For instance, fitness trackers collect a wealth of health information about users, which (in the United States) is protected under the HIPAA (Health Insurance Portability and Accountability act). This means that if you store that kind of information on your cloud servers, you have to make sure it conforms to the legal requirements.
As a rule of thumb, you’re better off anonymizing customer data and avoiding the storage of personally identifiable information (PII) in the cloud. It will ensure that you don’t incur legal penalties in case of mishaps.
Flexibility and Compatibility
As the IoT landscape is constantly shifting, you’ll want to make sure your product will be able to support future tech. This is something that needs to be ingrained in the design of your product with the right balance of software and hardware.
Creating specialized hardware for your device will give you optimal performance, but will probably limit you in terms of rolling out updates and new features. On the other hand, choosing the right amount of storage and compute resources, and an IoT-tailored operating system such as Linux, Brillo or Windows IoT, might incur a performance penalty but will give you the flexibility to expand your device’s capabilities with new features and patches.
Some manufacturers go as far as allowing developers to add to the functionality of their IoT devices by providing them with the right set of APIs and SDKs. A perfect example in this regard is the Amazon Echo, the IoT gadget that can be extended and programmed in a thousand different directions.
Compatibility is also an issue that needs to be taken care of when designing IoT products. It’s important that your IoT device be able to blend in with the rest of the user’s IoT ecosystem seamlessly, without adding complexity or frustration to the experience. This accounts for both software and hardware. Preferably, consumers should not be forced to install a new app for every new smart device they add to their homes. The Apple HomeKit and Samsung SmartThings are two examples of platforms that allow developers to offer users new IoT functionality in a familiar environment.
Data Collection and Processing
Security and privacy concerns aside, you have to have a plan for how you’re going to deal with all the data you collect. First of all, you have to make an assessment of how much data will be produced and collected in order to be able to scale your cloud storage to the needs of your platform.
But even more important than that is how you process the data you collect. IoT data is worth its weight in gold, but not if it rests in your servers and gathers dust. You have to forecast the skills and tools required to be able to put your data to good use. This includes hiring data scientists and employing the right analytics and machine learning tools to glean actionable insights from your data.
IoT data can accomplish a wide range of useful functions, including the following:
- Complementing your existing data: Most companies already have a wealth of data about their customers before they move to the IoT business. Combining this data with what IoT devices are gathering can unlock new business insights and revenue opportunities.
- Profiling and segmenting users: Data collected from IoT devices can tell a lot about customer preferences and characteristics. Analyzing and categorizing IoT data can help companies better understand the needs and preferences of their customers and address them in a smarter fashion.
- Finding opportunities for enhancing products: The correct analysis of IoT data can help understand what’s not working with the product and what features need to be fixed for efficiency and ease of use, and what features are missing and should be added to future products and software updates.
There are many challenges involved in developing an IoT product. Some of the more prominent have been listed above. Not taking these challenges into account can be the equivalent of entering a dark tunnel without a torch, where you have to feel your way forward and hope against hope that you don’t step into a trap. The list of IoT development challenges can be much more intricate and comprehensive. If you think other items can be added to the list, please share with us in the comments section.
Jump Start Git, 2nd Edition
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers
Form Design Patterns