The networking of different devices and systems usually brings additional complexity. The number of (communication) interfaces increases immensely. In addition, there are usually various solution concepts for implementing the respective use case. It is important to keep this diversity in mind right from the start.
Rarely are all software components of a system developed in-house. Rather, it is usually a matter of integrating many individual software components (drivers, frameworks, libraries,…) into an overall system. It is essential to consider the issue of security and the corresponding concepts right from the start.
In (I)IoT systems, the application logic usually no longer runs centrally on a device. It is implemented in a distributed manner, on several units of the respective infrastructure. With a focus on the respective business case, it is important to internalise this.
Adding a communication interface to a product already on the market or connecting it to a cloud and/or a mobile application is a special scenario. Here it can be a matter of implementing the new use cases with as few adaptations as possible to the original product.