{"id":15433,"date":"2020-02-06T09:48:00","date_gmt":"2020-02-06T08:48:00","guid":{"rendered":"https:\/\/device-insight.com\/2020\/02\/06\/the-dos-and-donts-of-iot-software-development\/"},"modified":"2022-04-13T10:44:16","modified_gmt":"2022-04-13T08:44:16","slug":"the-dos-and-donts-of-iot-software-development","status":"publish","type":"post","link":"https:\/\/device-insight.com\/en\/the-dos-and-donts-of-iot-software-development\/","title":{"rendered":"The dos and don\u2019ts of IoT software development"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"15433\" class=\"elementor elementor-15433 elementor-13641\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d0d092a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d0d092a\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c46e876 blog_col\" data-id=\"c46e876\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-783644d elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"783644d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">The dos and don\u2019ts of IoT software development<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4d38aa9 elementor-widget elementor-widget-post-info\" data-id=\"4d38aa9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-b86a0c7 elementor-inline-item\" itemprop=\"datePublished\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-date\">\n\t\t\t\t\t\t\t\t\t\t<time>2020\/02\/06<\/time>\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-808e92e elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/device-insight.com\/en\/category\/news-en\/\" class=\"elementor-post-info__terms-list-item\">News<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34dbdea elementor-widget elementor-widget-text-editor\" data-id=\"34dbdea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tThe IoT connection of machines, sensors and actuators offers innumerable possibilities, for example in industry. Here, it is important to be clear about existing challenges and hurdles in IoT software development in advance to avoid cyber-attacks and other sources of error.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-42f5a50 elementor-section-full_width elementor-section-height-min-height elementor-section-height-default elementor-section-items-middle\" data-id=\"42f5a50\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4b46edb\" data-id=\"4b46edb\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4a76b68 elementor-widget elementor-widget-image\" data-id=\"4a76b68\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/device-insight.com\/wp-content\/uploads\/2020\/02\/IoT-Softwareentwicklung.jpg\" title=\"IoT software development\" alt=\"IoT software development\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-65980bf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"65980bf\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ce6d9cb blog_col\" data-id=\"ce6d9cb\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2d8beb8 elementor-widget elementor-widget-heading\" data-id=\"2d8beb8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">IoT software development \u2260 classical software development<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c17b5bf elementor-widget elementor-widget-text-editor\" data-id=\"c17b5bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The Internet of Things has many faces: devices, machines, vehicles, sensors, actuators and even RFID chips are all part of IoT. Programming embedded software is however often more difficult than conventional software development and is also more error-prone as very little memory is available, as the effort required for updates is disproportionately higher for a large number of global devices and because the most important factor, security, is sometimes left out. In some cases, developers also lack the necessary skills, especially since IoT must combine more and more knowledge in various disciplines such as internet protocols, databases, cloud computing and mobile applications.  <\/p><p>This shows how complex IoT software development is. IT managers and IoT software developers should therefore be prepared accordingly. The following dos and don\u2019ts give practical advice on what to consider and what not to do when developing embedded software.  <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f5a56c3 elementor-widget elementor-widget-heading\" data-id=\"f5a56c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Dos<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4ac478f elementor-widget elementor-widget-text-editor\" data-id=\"4ac478f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Safety first:<\/strong> According to the figures of the Honeypot Analysis by IT security specialist Kaspersky, in the first half of 2019 there were 105 million cases of cyber-attacks on IoT devices, nine times as many as in the same period last year. This makes end-to-end or continuous encryption from sensor to cloud and secure device authentication, e.g. via device certificates, all the more important.<\/p><p><strong>Automated testing:<\/strong> Ongoing automated testing should be part of the budget planning and is important to ensure the functionality of software throughout the entire life cycle of the IoT device.<\/p><p><strong>Continuous integration:<\/strong> By continuously assembling and testing components, software quality can be increased significantly. At the same time, continuous integration is the basis for automated software deployment, providing the lowest possible downtime thanks to integration problems being detected early on.<\/p><p><strong>Standards:<\/strong> Companies should rely on widely used protocols and standards such as MQTT or OPC UA for IoT software development to ensure future-security and continuous updates and to avoid possible vendor lock-ins. The industry-wide trend is also clearly moving in the direction of standardized protocols.<\/p><p><strong>Sufficient budgeting:<\/strong> IoT projects in industry and other vertical markets do not appear out of the blue. In software development, costs for corrections, adjustments and for later updates and testing must be \u201cpriced in\u201d. That\u2019s why: it\u2019s better to plan a little more budget, since IoT software has to support devices in the field over longer periods of time. On the other hand, the added value of an IoT project quickly becomes apparent.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1bce027 elementor-widget elementor-widget-heading\" data-id=\"1bce027\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Don\u2019ts<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2f8f0d7 elementor-widget elementor-widget-text-editor\" data-id=\"2f8f0d7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Proprietary protocols:<\/strong> Manufacturer-specific protocols should be avoided in IoT projects. Instead, developers should focus on open standards to ensure interoperability and scalability of the IoT infrastructure.<\/p><p><strong>Unscheduled security adjustments<\/strong> through patches can take their revenge later, as this makes it difficult to close security holes afterwards. Devices must have a secure update mechanism.<\/p><p><strong>Test automation with existing equipment<\/strong> often proves difficult because access is usually blocked by firewalls. It is therefore better to test in simulation environments.<\/p><p>In the IoT world, <strong>error diagnosis<\/strong> <strong>via classic logs or log files<\/strong> is made more difficult by the fact that there are usually a large number of devices. More often than not, there is also a gateway connection in between. According to <a href=\"https:\/\/www.dev-insider.de\/7-lektionen-fuer-iot-softwareentwicklung-a-841686\/\" target=\"_blank\" rel=\"noopener noreferrer\">Dev-Insider<\/a>, logs must therefore be made available centrally in a targeted manner, especially since there is sometimes less storage space available on the devices themselves. A possible solution to the problem is a central log database (or syslog-ng).<\/p><p><strong>Getting lost in unnecessary features:<\/strong> Programmers can tend to lose the thread in a plethora of features instead of concentrating on the essential items. In this case \u2013 less is definitely more. The user experience is more important than having a large variety of features.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-19d2551 elementor-widget elementor-widget-heading\" data-id=\"19d2551\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">To conclude<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d9876e3 elementor-widget elementor-widget-text-editor\" data-id=\"d9876e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>As the dos and don\u2019ts listed here show, there are sometimes serious differences between classical software development and that for IoT devices. In both cases, however, safety is the be-all and end-all. Ease of use is often treated as a secondary consideration but should also be at the top of the list. Continuous automatic testing is also important, preferably in simulated environments rather than on devices themselves. This allows sources of error to be eliminated quickly and at the same time does not impede ongoing production.  <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-67b08f19 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"67b08f19\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-76edd520\" data-id=\"76edd520\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-27cd2d77 elementor-widget elementor-widget-heading\" data-id=\"27cd2d77\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Recommended posts<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c97e92d elementor-widget elementor-widget-shortcode\" data-id=\"4c97e92d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class=\"teasers teasers-single-post\"><div class=\"teasers__container\"><div class=\"teasers__single-teaser\"><a class=\"thumbnail-link\" href=\"https:\/\/device-insight.com\/en\/breaking-down-silos-with-ai-solutions\/\"><img decoding=\"async\" src=\"https:\/\/device-insight.com\/wp-content\/uploads\/2024\/06\/RAFI-IIoT-Worker-e1643285692554-1024x497.jpg\" alt=\"Image\"><\/a><div class=\"teasers__content\"><div class=\"date__box\"><div class=\"date__box-date\">2025\/12\/19<\/div><a href=\"https:\/\/device-insight.com\/en\/category\/news-en\/\" class=\"date__box-button\">News<\/a><\/div><h2 class=\"headline\"><a href=\"https:\/\/device-insight.com\/en\/breaking-down-silos-with-ai-solutions\/\">Breaking down knowledge silos with AI Solutions: from fragmented data to connected service intelligence<\/a><\/h2><div class=\"description\">Breaking down knowledge silos: how AI solutions enable connected service intelligence <\/div><\/div><\/div><div class=\"teasers__single-teaser\"><a class=\"thumbnail-link\" href=\"https:\/\/device-insight.com\/en\/ai-guided-troubleshooting-efficient-service\/\"><img decoding=\"async\" src=\"https:\/\/device-insight.com\/wp-content\/uploads\/2025\/11\/Blog-Header-8-1024x427.jpg\" alt=\"Image\"><\/a><div class=\"teasers__content\"><div class=\"date__box\"><div class=\"date__box-date\">2025\/11\/25<\/div><a href=\"https:\/\/device-insight.com\/category\/news\/\" class=\"date__box-button\">News<\/a><\/div><h2 class=\"headline\"><a href=\"https:\/\/device-insight.com\/en\/ai-guided-troubleshooting-efficient-service\/\">AI-Guided Troubleshooting: Turning service into a strategic advantage<\/a><\/h2><div class=\"description\">Retiring experts, missing know-how and service bottlenecks: AI-Guided Troubleshooting can close the ...<\/div><\/div><\/div><div class=\"teasers__single-teaser\"><a class=\"thumbnail-link\" href=\"https:\/\/device-insight.com\/en\/industrial-agentic-ai-opportunities-challenges-and-best-practices\/\"><img decoding=\"async\" src=\"https:\/\/device-insight.com\/wp-content\/uploads\/2025\/07\/Blog-Header-5-1024x427.jpg\" alt=\"Image\"><\/a><div class=\"teasers__content\"><div class=\"date__box\"><div class=\"date__box-date\">2025\/07\/24<\/div><a href=\"https:\/\/device-insight.com\/en\/category\/news-en\/\" class=\"date__box-button\">News<\/a><\/div><h2 class=\"headline\"><a href=\"https:\/\/device-insight.com\/en\/industrial-agentic-ai-opportunities-challenges-and-best-practices\/\">Industrial Agentic AI: Opportunities, Challenges, and Best Practices<\/a><\/h2><div class=\"description\">Hype or Must-Have: The promises of Agentic AI for industrial use cases<\/div><\/div><\/div><\/div><\/div>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>IoT software development places different demands on development. These are the dos and don&#8217;ts.<\/p>\n","protected":false},"author":4,"featured_media":12579,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[60],"tags":[79],"class_list":["post-15433","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news-en","tag-technology"],"acf":[],"_links":{"self":[{"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/posts\/15433","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/comments?post=15433"}],"version-history":[{"count":14,"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/posts\/15433\/revisions"}],"predecessor-version":[{"id":25125,"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/posts\/15433\/revisions\/25125"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/media\/12579"}],"wp:attachment":[{"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/media?parent=15433"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/categories?post=15433"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/tags?post=15433"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}