Every project faces scalability issues. That’s the nature of work.
The bigger your project gets, the harder your problems are to solve, and this is especially true for IoT. IoT products are already very complex because they require a broad tech stack — ranging from hardware and compute, to cloud-side logic, business communications, and data manipulation and storage. Scaling your IoT product means more devices, more connections, more users, and more environmental variables added to the mix.
How do you get all of the pieces to work together? Let’s examine some key things to consider during the IoT development process to make sure your connected devices can operate at scale.
Getting IoT OTA Updates Right
One of the most valuable weapons you can have in your arsenal when scaling your IoT product is the over-the-air (OTA) update.
Traditionally, software development is a process of continuous delivery. There’s always something that can be improved upon through user research, and new security updates to deploy. Because software is intangible, it’s easy to make these changes on an ongoing basis.
Hardware development, meanwhile, has traditionally been linear. Once a piece of hardware ships, it’s “done,” at least until a newer version or system comes out that makes the old one obsolete.
The IoT development process is unique because it combines software, something that can change on the fly, with hardware, which has more permanence and associated costs. IoT OTA updates are one of the key features that make it possible for physical devices to evolve with the needs of users, enabling continuous delivery, opportunities to create new revenue streams from existing products, and the installation of crucial security patches and updates.
But getting OTA updates right is difficult. Unforeseen bugs in your firmware could accidentally brick your product. Trying to deploy device firmware updates across your entire fleet requires segmentation and can be disruptive to your users and your own operations. And critically, IoT firmware security is tricky to get right.
The most important thing to remember here is that enabling OTA updates is not a checkbox on your IoT project to-do list where you can “set it and forget it.” It’s something you’ll need to be monitoring consistently to ensure it’s delivering the results you want.
Diagnosing and Debugging Remote Devices
Another essential question to ask when scaling your IoT product: what happens when there’s a bug?
Our first recommendation on this topic is to make sure you’re taking proper precautions during the IoT development process to prevent bugs that might have been avoided through thoughtful product design. The best way to do this is through robust user testing. Effective user testing for IoT gives you an opportunity to understand all of the ways your product might fail once it’s out in the wild, and it’s best performed outside the lab by people who were not involved in the development process.
Still, even if you perform user testing during the development process, bugs happen. A few common ones in the IoT space include:
- Integration errors
- Network issues in specific geographies
- Incompatible firmware versions
- Power consumption
In these situations, it’s important to have a team ready to respond when errors arise, with a defined process in place for the quick resolution of issues. The faster your support team can get to the root of the problem, the faster it will be solved, so make sure that when you report a bug you’re highly specific, including information like:
- Date and approximate time the bug was found
- Bug description: A concise description of what the problem is. Pure description is helpful here — no narrative or conversational language.
- Severity: Describe the impact of the bug.
- Steps to Reproduce: Step-by-step instructions on how to reproduce this bug.
- Do not assume anything here. The more detailed your list of instructions, the easier it is for the developer to track down the problem.
- Actual Behavior: Explain what happens when you follow the instructions to reproduce the error. This is the manifestation of the bug.
- Expected Behavior: Explain what you expected to happen when you followed the instructions. This is important, because you or your users may have misunderstood something or missed a step, and knowing what you expected to see will help the developer recognize that.
- Troubleshooting, Workarounds, and Testing Steps Attempted: Describe anything you did to try to fix the bug on your own. If you found a way to make the program work in spite of the bug, describe how you did it.
This might seem like a lot of information to provide at first (particularly when you’re already in mild panic mode because of the bug), but by giving your support team context up-front, you’ll eliminate needless back-and-forth and resolve the bug more quickly.
Although sometimes controversial, you can also consider creating an opt-in system for reporting bugs and other telemetry data. A public bug reporting system will work wonders for the quality of your software.
Choosing the Right Hardware for Your IoT Device
IoT products come in many shapes and sizes, from handhelds and wearables to industrial machinery in smart factories. That means that when purchasing hardware for your embedded devices, a one-size-fits-all strategy won’t cut it — and definitely not at scale.
You need to choose hardware that is tailored to your use case, taking into account power requirements, the impact of environmental factors, and the durability of the hardware. Where will this product spend most of its time? Are there any edge cases you might not have considered? How long does it need to last?
You should also be thinking about what you want versus what you need when it comes to hardware. Generally, IoT project managers on the hardware hunt are looking for something that’s easy to develop and use, is affordable, and doesn’t require huge tradeoffs when it comes to power management. But to ensure success long-term, you’ll also need to consider supply-chain support, software tools and support, connectivity lifespan, and device certifications.
Scale Faster With Better Support
Making a foray into IoT is already a challenge without a guide, and scaling at an enterprise level can seem insurmountable. However, if you invest your time and budget into getting OTA updates right, setting up a process for diagnosing and debugging devices, and selecting the right hardware for your project, you’ll be more likely to succeed.
If you’re looking for a partner to join you on your journey, Very has you covered.
In addition to helping you design and build your IoT product, our expert team is equipped to support its ongoing maintenance. Our team becomes an extension of your team to help you achieve your goals within the timeframes your business needs and expects. Get in touch today.