There is a fundamental difference between the hardware developers’ mentality vs. the software developers’ mentality. This is nothing new as a technology trend, but it plays an important role in unlocking the potential of the Internet of Things in that it will impact the development of IoT components. So what is this difference?
For hardware developers, the product must be as finalized and perfect as its vision. An upgrade in hardware means asking consumers to basically purchase the device anew, risking frustrated discard, competitive usurping, and or just plain old drop-off. This, in addition to the challenges around friction and replacing a non-broken practice outlined above, places a profound imperative to get it right the first time.
For software developers, beta is the name of the game. Get a prototype out and iterate, iterate, iterate. The process is fundamentally one of improvement, feedback cycles, and upgrades. An upgrade in software can be seamless, sometimes not even noticeable by the consumer. Just get something out there and the crowd will dictate its evolution. Stay agile, and you’ll enjoy numerous opportunities to improve.
Now enter the Internet of Things where these two worlds must converge. Their intersection is what enables the value generated when devices connect with each other. To bridge the hardware and software is to leverage hardware as vehicle (platform) for software to symbiotically manifest its value. The challenge is creating harmony between both that can be sustained throughout the life of the product to accommodate incremental updates and directional evolution. Another interesting feature of IoT products is, theoretically, they get better with time. Why? Because the transmission of data through analytics, machine learning, or other optimization techniques are designed to ‘learn’ the behaviors of the user, and as a result become ‘smarter’ (more relevant or predictive) over time. The longevity and viability of smart products depend on the ability evolve with the user over time; software updates are essential to this.
Often these teams are silo’d organizationally. Combine these groups, as collaboration is critical. Keeping application and use cases as simple as possible to drive adoption and trust among user base is the first step. Allow users to get comfortable with the hardware, and use software iterations to prove value. Only then can the complexity IoT promises emerge.