Developer's Challenge: Tackling Complexity, Portability, and Compatibility in IoT Software
Developers are concerned about the difficulties they face in three areas, according to the survey. The top challenge, cited by 60% of respondents, is the lengthy and complex software and product development cycles. This is followed by porting software to newer and more performant hardware, which was identified as challenging by 55% of developers. Achieving the right level of performance is also a major concern, with 52% of respondents highlighting this as a challenge.
The software-portability challenge is an important one because the consequences of not having it are, for developers, quite broad and significant. In fact, “Write once, populate many” is not just a clever mantra; it's a strategic necessity for developers.
It means:
Reduced development and operational effort: Portable applications require less development and operational effort.
Increased user flexibility: The ability to work on different platforms increases user flexibility and the application's potential user base.
Lower costs: Not having to rewrite code to make a solution compatible with different computing platforms saves time and money.
Avoiding vendor lock-in: Software portability makes it easier to switch between different vendors without added costs since portable applications require less development.
And downstream, the more portable the software, the more likely it can help scale the impact of an application to benefit millions of people.
To accelerate time to market, developers are turning to a range of solutions. Virtual prototyping of new hardware to test and build software – using, for example Arm Virtual Hardware (AVH) – in advance of a release or hardware delivery is seen as the most effective solution, according to 49% of all respondents. Those in the consumer segment favor it slightly more (51%) compared with, say industrial (41%). Improved software compatibility across a wide range of devices is the second most important factor, with 42% of respondents selecting this option. AVH is a software tool that provides simulation models, software tooling, and infrastructure that can be integrated into CI/CD and MLOps development flow. AVH delivers ready-to-use models of Arm-based processors, systems, and third-party hardware, and it runs as an application on a host computer.
Arm Virtual Hardware is an innovative approach that enables our customers and software partners to iteratively train and fine-tune AI models in the cloud, receive ideal compute cycle counts for our particular SoC system configuration, and compare those to actual cycle counts measured on our silicon. This new approach will help developers save time and optimize their designs.
Another key consideration for developers is the importance of using the same architecture across all products. Compatibility with third-party software or development tools, licensed or free, is cited as the most important reason for this, with 61% of respondents selecting this option. Software reuse is a major consideration, with 48% of consumer respondents highlighting this as important. Compatibility with third-party software or development tools is also a major consideration for industrial respondents, with nearly 70% selecting this option. Reduced costs is the second most important consideration (49%). This is particularly important for industrial respondents (60%). OEMs value reduced costs significantly more than SoC designers (61% vs. 45%). Finally, reduced learning time for the development team is also cited as an important consideration, with 45% of respondents selecting this option. Compatibility in fact can speed time to market. Improved software compatibility across a wide range of devices, according to respondents, was tied for second-most important factor in getting products to market faster.
Overall, reducing software complexity is a key factor in accelerating time to market for IoT products. This involves addressing lengthy and complex software and product development cycles, porting software to newer hardware, and achieving the right level of performance.
The key to scaling IoT lies in software: Its availability, openness, compatibility, lack of complexity, the tools and costs to develop it. Developers especially value developing solutions on the same architecture because that gives them a consistent target for their software and drives compatibility with third-party software or development tools. The Arm ecosystem has coalesced around these values and offers, technology, support and training to achieve one's IoT ambitions. For more information, visit the Arm Developer Hub and browse more than a dozen insightful videos about software development on this Arm YouTube playlist.