Lifecycle Programming and Control Systems

(As appeared in AV Network)

Control system programming, like the entire AV system, should be looked at as having a finite lifespan. Even though programming does not break on its own, seem to become obsolete, or typically show signs of aging to the user, refreshing control system programming for a room, system type, facility, or organization is a healthy part of an AV system lifecycle.

Over time, control system programming gets modified for various reasons of maintenance and upgrades. There are both hard and soft criteria that lead to the need for such changes. Let’s start with the hard criteria.

● All AV systems are living, changing organisms that need to be updated for a variety of reasons from time to time. Whether due to equipment replacement, expansion, or deletion, system changes, and thus system programming modifications, are an ongoing need. Equipment failures or upgrades, variations in users’ needs, changing of system application, and/or technology refresh are some of the specific reasons.

● With more devices being network appliances that are software upgradable, patches can be applied, enhancements incorporated, operational shortcomings addressed, and capabilities updated simply by loading firmware. Although this is a great feature and provides a lot of value, it also introduces the need for updating control programming to unleash functionality or address issues that may have been introduced.

● Although much effort is put into testing and debugging control system programming when it is written and released, issues may be detected as the system is used over time in various scenarios. As a result, programming updates will need to be applied occasionally to address the outstanding items that are identified.

● In addition to these more definitive needs to update control system programming, there are subjective needs that arise. The following are some examples.

● Over time, the interface design and graphics can become dated. Whether it is because of trends in graphics, corporate branding updates, or style adjustments, it is important to maintain a current look and feel for a user interface. As it is the main touch point for the system, users should feel comfortable and confident that it is going to reliably serve their needs. A dated user interface will likely cause some users to question the reliability of the system and possibly be confused as to how it operates.

● Like the need to update systems to address issues identified through testing over time, there are user preferences and requests that typically surface after a system has been used for a while. These items help to improve the usability of the system, ease of operation, or address changes in user priorities or needs.

● One more consideration is the desire to update the system programming to incorporate enhanced capabilities or features including integration with system monitoring software, room scheduling, dialing directory integration, etc.

Control system programming modifications are a critical part of an AV system’s life cycle. It is important to realize that, each time programming is updated, care needs to be taken to follow best practices that include providing proper documentation, eliminating any outdated or unnecessary code, and ensuring that all existing functionality continues to work properly after upgrades are implemented. It can be a challenge to modify or support code that was written by another programmer with a different programming style or adheres to different standards, thus the clarity of source code can diminish over time based on the number, magnitude, and way that modifications are done.

With that in mind, planning and consideration to re-write source code after a defined number of modifications, updates, or system design changes should be taken into account. Although control system programming can last for a long time, if it is not changed, provisions should be made to plan for a refresh, similar to other technology that either suffers from wear and tear or becomes outdated.

When re-writing existing source code, there are techniques that can be implemented to extend the life by developing a programming architecture that makes provisions for predictable expansion or modifications. Additionally, when source code is re-written, it will be easier to maintain, be more reliable, and last longer due to experience gained from the prior iterations of source code.