We all know the best laid out solution plans will always change. Yet we continue to map out every scenario and every detail when designing a solution regardless of the uncertainty of the future. Now let’s multiply that uncertainty taking into consideration fast tracking of market demands and customer awareness with IoT solutions like the health monitoring feature from your Apple watch or video conferencing via Zoom. How do you build an IoT solution with the future in mind without over architecting or building yourself into a corner?
Let’s be honest, there is no perfect answer only best practices that should be applied based on your situation. In this blog post, I’ll discuss on a few practices that’ll help you define your solution for today, while enabling its future growth.
Solution development is not to different then building a house. You begin with your foundation, then walls, a roof, add mechanicals, insulation and so on. Next, you’ll add personalized touches to your new home to make it your own. Building an IoT solution is no different. By breaking down the solution into manageable subsystems (i.e. collection, transmission, visualization, storage, etc) you’ll be able to focus your efforts on what is most important within that component of your solution. This will then allow you to see what interdependencies you have between the subsystems and how you’ll have to connect them all together for a total solution. Taking this approach also allows you to form integration points into the subsystems to support future developments. This way your solution can grow and improve over time without having to rebuild the entire solution.
As mentioned, before the best plans change and new features or security updates will have to be deployed to your IoT hardware. Unlike traditional IT, IoT devices require on and offline functionality being they are typically remote and only communicate back to a central location when there is “interesting” information. When defining you IoT solution you’ll need to address how firmware updates can be pushed to the devices once the device connects to the platform. Many of the IoT communication standards like MQTT support this functionality, but you’ll still want to define your update strategy (frequency, value, etc.) so that your end customers don’t feel the pains of continuous change in your solution.
IoT is all about drawing conclusions from data for improving reliability, performance and/or safety. Data from a single source has a finite value, but if you start correlating data from various sources then the value becomes limitless. An example of this is Google Maps on your smart phone. It’s great to get turn by turn direction which comes from a routing application, but if you add in real-time traffic information your routing turns into Navigation. The most common point of integration for IoT solutions is the cloud as it is always on and has direct communication with your hardware, so you’ll want to ensure any on machine data needs can be achieved with the Cloud down to hardware communications.
Defining an IoT solution today for the future is no easy task and there are a multitude of paths to accomplishing it. The question becomes how flexible is your solution in order to meet the unknown needs of tomorrow, while providing value today? By building your solution with a modular and upgradable approach that allows for future integration you’ll be well on your way to meeting customers’ needs for the life of your product.