Introduction
Many times I've encountered different IoT projects that they never released, lack of providing a good solution for the customer or suddenly fail.
One of the biggest challenges of IoT projects is they are integrated for various technologies which includes: hardware, firmware, and software. This provides an easy way to make bad practices during the design-development of IoT projects.
Some teams are excellent at hardware design but lack the proper implementation of secure and efficient Firmware or are unaware of service management and IoT cloud protocols, for example.
Below, we will analyze the most common mistakes that startups or makers make when creating an IoT product and/or service.
Lack of vision about IoT and its implementation
In many projects, the stakeholders don’t have a clear vision of the life cycle of an IoT Project. They just want to release a fancy IoT product which includes all recent WiFI, Bluetooth, and GSM trends modules without making an analysis of the connectivity requirements of the project.
Another example, the projects where they start deploying thousands of devices and then, they realized that the hardware module is not compatible with the network driver or they need to update the firmware.
This is very common because sometimes stakeholders don't like hearing that part of the project budget needs to be invested in proof-of-concept tests, which involve developing test PCBs, running tests, and validating the project's feasibility according to its initial requirements.
Choosing the wrong solution
This is quite common when a connectivity solution is chosen and doesn’t match the project requirements.
The hardware is designed with a microcontroller that includes a WiFi module, but in the field tests, the engineers realized that there is no WiFi connectivity nearby.
Another scenario, the engineers choose LoRa/LoRaWAN for transmitting real-time video.
These design mistakes can lead to costly revisions and project delays.
Poor IoT Cloud Ecosystem
This is my favorite, the IoT product consists of C code which makes an HTTP request to a PHP script or mostly, it writes data to the database directly without any security layer.
This problem is also related to point 1, So, when designing an IoT solution, you must consider the entire product lifecycle. You need to understand that you must have:
- An IoT device management system to monitor each installed device.
- A provisioning system and process to configure local network and cloud system authentication credentials.
- A remote Firmware update process (OTA) to update the firmware of each installed device without needing to physically visit the location.
- A robust security layer to protect data and the integrity of connected devices.
Underestimating the importance of security
Security is crucial for any IoT solution, is a MUST. However, many startups underestimate this aspect and they release products with security vulnerabilities. This not only compromises the data integrity but can also lead to legal consequences and damage a company’s reputation.
For that reason, implementing good security practices from hardware up to cloud communication is essential.
No scalability and maintenance
For IoT applications, scalability is essential. Many projects fail because they don’t consider how to handle a massive device connection or managing the collected data. Moreover, continuous maintenance and updates are required in order to ensure the system functionality and security in a good way.
You must consider implementing your own CI/CD workflow for your system.
Ignoring the end-user experience
Often, the engineers focus on technical functionalities and forget about the end-user experience.
It is vital to design IoT products that are easy to install, configure, and use. A poor user experience can lead to low adoption and a high number of returns or complaints.
In summary, to avoid these bad practices, it is essential to have a clear vision of the project, choose the right technologies, plan a robust cloud architecture, prioritize security, ensure scalability, and maintain a user-centric approach. Only then can you develop successful and sustainable IoT products.