Cooperation and prioritization
If you decide to build an app, you must be involved as a Product Owner and available to know every step of the process. This is important throughout the project work, not just at the beginning of the requirements set. During the execution of the project and the requirements setting, this is most important.
It is different in the case of corporations, as there is often no single decision-maker there - it is worth setting priorities in product development from the very beginning to develop it in a structured way in project sprints.
Scalability
Whether your application stays up to date depends mainly on scalability. It refers to building additional features commensurate with business needs and adapting to those changes, so you're not starting from scratch when your business needs to evolve again. Additional functionality means, for example, managing more data and many different devices and processes. Maciej Sułek, CTO at OG, states: "Defining the scope of work early on allows you to get the technology right and identify right away which parts of it will need to be scalable. Of course, this is not always a priority, and sometimes in the case of building MVP, we consciously shorten this stage with the client to show some functionality while knowing that to achieve scalability, it will be necessary to rewrite the code".
Security
Security is the biggest challenge for IoT; however, due to the large number of connected devices operating on a single network, IoT technology is somewhat vulnerable to data breaches. Therefore, it is imperative to follow best practices for application security - encryption, two-factor authentication, and other techniques to ensure that your IoT application and devices are used securely by authorized users.
What does it look like in developing IoT applications at OG?
"In every project, we pay a lot of attention to ensuring security. Of course, it is more difficult to ensure when we have many components that communicate with the system. We use various basic methods such as connection encryption, authorization based on proven mechanisms, or separation of privileges. Additionally, depending on the project and its architecture, we add e.g., network separation, VPN, disk encryption, etc." explains M. Sułek