More and more products are connected, and are therefore part of the Internet of Things (IoT). But IoT development is fundamentally different from the development of more traditional products. This is a challenge for new companies that enter the market, but established organizations struggle even more, as their established and proven approaches are suddenly not working any more.
In this article, we look at the four major elements of IoT development, which are Mechanics, Electronics, Embedded Software, and Cloud Software.
Why these four?
When the industrial revolution took off in the late 18th century, things were just mechanical. Soon they were augmented by electric components, but this added comparatively little complexity.
Eventually, systems integrated complex electronics as well, but this was still manageable. Only critical applications required rigorous approaches, which lead to systems engineering, driven by avionics and space flight.
Hardware and Software
Embedded Software and Cloud Software are fundamentally different
As development accelerated in the 1970s, and more concepts from computer science made its way into products, efforts were made to combine these three elements. This was the birth of Mechatronics, which made it into universities and has been adapted by the industrial sector. The approaches developed back then have served us well. However, as new, agile approaches gain ground in software development, the approaches for mechatronic development don’t work well any more: For effective development, hardware and software need to evolve at different speeds, while still serving the overall system. In this case, we are talking about embedded software that is an integral part of the product. Recognizing hardware and embedded software as distinct elements allows us to develop these elements as efficiently as possible.
Electronics are the “glue” between hardware and software. As such, it often takes on a platform character, let it be through the choice of a chipset or off-the-shelf components. While it is a comparatively small element of modern development, it is clearly distinct and should be treated as such. In particular, it is important to understand the interface character of electronics, e.g. by transforming physical signals into electric currents, and on into data structures.
The forth element is the software that justifies the term IoT for the product. The Cloud software is not running on the device, but extends the devices functionality beyond the product. A typical example would be a phone app that allows you to control a thermostat. There are huge differences between the cloud software and the embedded software, but often these differences are not explicitly acknowledged. Organizations, that keep connectivity in mind from the very beginning, develop products that seamlessly integrate into their customer’s lifes.
Keeping it all together
These are the four elements of IoT development. The challange is to provide product development environments that are optimal for those four elements, but at the same time to ensure that all elements serve the common development objective. Nobody said that it would be easy.