Reconfigurable I/O (RIO) systems (NI Single-Board RIO, NI CompactRIO, and so on) are used for several years in embedded applications. It is necessary to maintain these systems to ensure the expected results over the entire lifetime of the product lifespan. Software is an integral component of these systems and therefore needs to be maintained. This document will review the rationale for regular software upgrades and the best practices for upgrading software.
Rationale to Upgrade Software
Developers find the need to upgrade software for various reasons. When new hardware is used in a system a developer needs to upgrade software to a supported version. Similarly, developers need to upgrade an application to utilize new software features. Other times, developers are forced to upgrade software because components of their system (operating systems, hardware, software, etc.) become obsolete. When the components are upgraded, developers need a compatible software version. In many situations a software upgrade is inevitable.
The main rationale to upgrade software regularly is to always have a mainstream supported software version in use. NI will release patches at their discretion for software with mainstream support. If bugs are found in software that are not covered by mainstream support it is not likely they will be fixed.
Another consideration for regular software upgrades is that whether you are updating for new hardware or software features, system component compatibility, or a bug fix, regular incremental upgrades will allow more seamless transitions than large version jumps. For example, upgrading every two software version releases will ensure continued mainstream support and need a substantially lower amount of effort than updating every six software version releases.