The IoT device development process is a layered one, with a complex set of dependencies and milestones across a number of teams. With advancements in connectivity and hardware capabilities, that process is only getting more complicated—and longer.
Historically, device developers could breathe easy post-launch, but the days of ship-and-forget are over. Consumers expect reliable, long-lasting products that are continuously updated. Creating a sustainable business, delivering reliable IoT products, and curating a loyal customer base requires an intentional focus on development and post-launch device performance. It also requires the ability to respond quickly when products are performing poorly.
No matter how thorough your QA process is, your product will have bugs that only surface in production. Noted firmware engineer and author Jack Ganssle estimates that every thousand lines of code contain between 10 and 100 defects. Given that IoT devices generally have thousands of lines of code, Ganssle’s estimation means each device likely contains a multitude of bugs. These bugs may not surface if your device fleet is in the dozens, but if you’re shipping tens of thousands of devices, it’s only a matter of time before the bugs are detected. Before, if users detected bugs, feedback about them went directly through customer service and return processes. Now, social media gives frustrated customers a platform where complaints about bugs can be amplified globally, causing harm to your company’s reputation and your customer relationships.
Building a sustainable IoT business means integrating a fast development cycle with an approach for managing those devices over the long term. It requires a way to ensure product quality and reliability at—and after—launch.
Below are three steps businesses can take for a successful approach to IoT development that accelerates your product timeline, improves overall device quality, and creates a loyal customer base to boost the bottom line.
1. Adopt a test-driven development (TDD) process.
Build software and firmware against a test harness rather than real hardware. This process offers a number of benefits: it allows you an early start on your firmware development, whether or not your hardware is ready while helping you iterate much faster. It also means you develop a robust set of firmware tests that are available continuously.
2. Follow a Day-0 update approach instead of requiring general manufacturing freezes.
Freezing firmware in an incomplete state—intending to apply a software update when devices are unboxed—enables fast, efficient, and responsive development. By freezing firmware in a bare minimum state, knowing you will continuously improve algorithms and update devices, you can extend a product’s complete time by weeks or months. Instead of having updates completed at the manufacturing stage, you can continue to add features and improve the firmware on a rolling basis, pushing updates and patches in real time.
3. Adopt device reliability engineering techniques.
Just as software engineers tap critical software techniques to monitor and manage operational reliability, IoT developers need similarly useful diagnostic processes for visibility and control over connected devices once in customers’ hands. Those include:
- Performance monitoring. With access to hard data, developers can detect issues and get critical information about the severity, frequency, and reach of bugs. Some useful metrics to monitor are battery life, memory usage, system responsiveness, sensor performance, and connectivity. Be sure that any system collecting this data is aligned with industry regulations. It should have low overhead to not impact device performance and be easily extendable to give teams the flexibility to evolve.
- Remote device debugging. Automating the debugging process creates a method for devices to report issues through the cloud and analyze data, collate and deduplicate errors, and ultimately resolve the problems—without subjecting customers to the headaches and wasted time associated with filing complaints and reporting bugs.
- An over-the-air (OTA) delivery system. Wireless delivery of new firmware, software, or other data to connected devices provides an insurance policy for IoT teams. It eliminates the need for product recalls and returns and gives developers the ability to push out updates and security patches—all while devices remain operational.
As new use cases for IoT devices continue to grow, and users develop increased reliance on their utility, there’s an incredible opportunity to create a sustainable IoT business. It requires a transformative approach to development, one that demonstrates value in both creating an incredible product and ensuring that the product continues to drive user satisfaction. Build a solid foundation for a reliable product and a happy, loyal customer base by focusing on a long-term approach to the IoT.