IoT Product Development Lifecycle & Checklist
With the IoT or Internet of Things ecosystem growing at unprecedented pace, it is imperative to understand the IoT product development lifecycle for creating a roadmap for developing IoT products.
IoT allows connecting devices to the Internet. That makes it possible to monitor activities without being physically present on-site. In addition, IoT devices can exchange information among themselves, while communicating with other devices and systems.
Most IoT devices constitute a physical sensor for gathering information from the environment, a digital system for controlling and processing the gathered information, and a communication system for receiving and transmitting it to other devices.
Development Stack for IoT device
This is the first layer of technology, defining the physical parts. It consists of the basic sensor and the associated processing electronic components. The nature of the sensor and electronics used depends on the physical parameters that the device must process. Factors of importance in this stage are size, form factor, method of deployment, cost, power consumption, useful lifetime, and reliability.
The second layer assists the first layer in performing as intended. It helps in converting the analog signals from the sensor to digital values, in linearizing them, and normalizing and optimizing them as necessary.
This layer depends on the complexity of the device, and may be necessary when the device uses microcontrollers/microprocessors. The operating system provides enhanced functionality to IoT devices.
This layer provides the basic user-interface for the device, and its complexity depends on the application.
This is a very important layer, and provides immunity to the entire system from malicious attacks from outside via the Internet.
This layer allows the device to communicate with other devices, computer systems, cloud systems, and more. The method of communication and networking may be wired or wireless, and typically follows a standard protocol.
Data Processing Capability
A network of smartly connected IoT devices needs a well-defined process for treating the data that the sensors collect, and a proper method of analytics to extract the necessary information from them. Properly assessing the data from the sensors can lead to unlocking various opportunities, uncovering valuable business data, and creating new business models.
A very significant component of the IoT subsystem, analytics allows suitably handling the immense amounts of data the IoT devices generate over time. Analytics helps to find patterns, perform forecasting, integrate machine learning and more.
IoT Product Development Lifecycle
Smart connected products present enormous opportunities, and therefore pose unending product development challenges. The entire development lifecycle may be very broadly divided into several stages:
Identifying Requirement and Functionality
This stage sets the basic groundwork for the IoT device. It identifies the requirement from the device and its functionality in the greatest detail possible. It defines the specifications and the limits that will apply to the device. This stage decides the standards the device will comply with and the protocols it is expected to use.
Based on the above, the design team selects the proper sensor, its associated electronic components for processing the signals, the digital conversion system, the microcontroller/microprocessor (if necessary), the communication system, and the power source.
Also based on the specifications, the design team must decide the size, form factor, and power consumption of the device. The basic factors to decide include whether the device is to be powered by a battery or line, connectivity to be wired or wireless, method of mounting the sensor, method of mounting the device, and more.
Depending on the above, the team decides whether the device requires a microcontroller/microprocessor, its operating system, and how its firmware design should function. This stage also defines the user-interface necessary for operating the IoT device, and whether it is necessary to monitor it locally or remotely.
Depending on the size and capabilities of the team, it may be necessary to onboard partners to avail the various expertise necessary while building an IoT device. Partners may be necessary for selecting/formulating:
- The proper sensor for the application
- The optimum mounting technique for the sensor to function appropriately
- The appropriate electronic components to process sensor signals
- The proper digital electronics for handling the output
- The firmware to allow the electronics to function as intended
- The operating system for the microcontroller/microprocessor
- The adequate standards and regulations
Proof of Concept and Prototyping
It is necessary for the team to prove their concept works, and the best way to do this is to prepare a prototype. The basic requirement in this stage is to first collect the electronic components. A printed circuit board manufacturing partner may be necessary to prepare the schematic, design the layout, and to deliver a prototype printed circuit board.
The next step in this stage is to assemble the printed circuit board, and test its functionality. This may also require the development of the firmware to use with the electronics.
At the prototyping stage, it may be possible to break up the entire development into modules. The basic module could be the sensor and its associated electronics. The digital electronics and firmware could be the second module. If necessary, the microcontroller/microprocessor and the associated operating system can follow. Once all this is performing to satisfaction, the team may decide to add the communication module.
Early Product Testing
Typically, the team will likely carry out early product testing in-house, with limited resources. They will devise scenarios with known results and compare the output generated by the IoT development product. The product may require tweaking to change its design to confirm to the specifications.
The IoT product may require testing for EMI/EMC compatibility. Conducting this test in the early stages is necessary to avoid expensive changes later.
Once the product is functioning to satisfaction in-house, the team may decide to conduct field tests to ascertain its performance in real-life scenarios. This will subject the IoT device to various environmental factors like inclement weather, unstable power, improper handling, etc. Results from testing the IoT device in the field will be useful in further improving the design.
Another very important field test necessary at this stage is to evaluate the ability of the IoT device to withhold cyberattacks. Carried out by experts, it may require design changes to make the product adequately safe from vulnerabilities.
Once the testing above concludes satisfactorily, a manufacturing partner may be necessary for producing larger quantities of the IoT device. The printed circuit board services partner will be responsible for mass production of printed circuit boards, procuring components, assembling and testing them.
Depending on the application and places of deployment, it may be necessary to partner with a logistics support group. They will be responsible to distribute the IoT device to various locations, and possibly to install them in place.
As it is possible to remotely monitor IoT devices, the team must monitor the health and life of the IoT devices scattered in the field. This will weed out faulty or non-working devices, and modify devices that may require software updates to keep them functioning optimally. The team may also use data from IoT devices in the field to deploy updated versions or design newer models.
Checklist for IoT Product Development
- Product can function easily in all types of environment?
- Is it possible to scale up the product as it gets more popular?
- Tested for failover methods?
- Is there a business continuity plan and a disaster recovery plan?
- Tested the business continuity plan and the disaster recovery plan?
- Are backups available?
- Tested restoring data from backups?
- Any plan for identifying and responding to denial of service attacks?
- Lifecycle management in place?
Preventing Physical Attacks:
- What is the risk if someone accesses the firmware? Does the firmware contain secret data that could put other devices at risk?
- How to detect and respond to tampered firmware?
- What happens if corrupt firmware prevents the device from operating?
- Any vulnerabilities in hardware components in the product making it more susceptible to physical attack?
- Can competitors use the firmware?
Preventing Attacks to Connected Product:
- Tested the software for common vulnerabilities?
- Removed all unnecessary components and services from software?
- Any list of third-party libraries included in the software?
- Monitored those libraries for known vulnerabilities?
- Possibility to update the software once it has been shipped?
- Methodology to inform customers that software needs to be updated?
The above is an example of how to proceed for IoT product development lifecycle and set up a checklist for the same. However, the scenario is constantly changing, with new risks cropping up. However, risks also bring opportunities with them, forcing the development of newer ways for addressing them. Ultimately, connected IoT products offer so many good opportunities that it is worth taking up the challenge.