How to Succeed at AV Programming
For decades, integrators, consultants, manufacturers, and technology managers have wrestled with the challenge of addressing programming for their AV projects. Some have hired programmers on staff, while others look to freelancers or subcontractors to satisfy or supplement their needs. In any case, programmers remain a scarce resource, and the demand for good programming can be a limiting factor for the success of AV integration, product adoption, and client investment. The challenge of attracting, developing, maintaining, and becoming skilled AV programmers presents an opportunity for growth and innovation for members of the AV industry.
AV programmers come in a variety of flavors. Some are engineers or technicians who either took on the responsibility of control system programming accidentally or aspired to become a programmer as a career path. Others have computer science or IT backgrounds and come to the industry with native programming education or experience. Both approaches have their merits and drawbacks.
Related: The Art of Standardization
Even though a technician or engineer without pure coding training may not have the background to approach a programming need with the perspective of software developer, they understand AV components, signal flow, use cases, and client expectations. On the other hand, a pure coder possesses the knowledge of leveraging software methodologies and constructs, architecting software solutions, writing efficient code, and developing applications that satisfy defined needs and specifications. However, they may wrestle with the challenge of learning the unique requirements and specialization of AV.
While the AV industry continues to be a specialized area of IT, the role of AV programmers is also under more influence of software development and modern programming languages; therefore, it would seem sensible that computer science or engineering students would provide an excellent resource for the demand for AV programmers. On paper, the skills may be a great match and it would seem to be a natural fit, but there are requirements to consider before counting on this path to success.
No matter the background or experience, successful programmers must possess a variety of attributes that go beyond simply writing code. Here are some skills and qualities of successful AV programmers:
Agility and Adaptability
Successful programmers have learned that AV systems are not static in nature. Unlike traditional software applications, AV requirements and expectations are not always spelled out in advance and will likely be moving targets even throughout the development cycle. This can be a real source of frustration for software developers who like to plan and execute their solution in a sprint. Variations in requirements could include any or all of the following: modifications to system design, changes to equipment selection, adjustment to device setup, impact of the client’s network configuration, deviation in functionality requirements, and impact of user preferences.
It is critical that code is written to anticipate and accommodate changes, allowing them to be handled in a timely and efficient manner. Whether or not changes and requests are outside of scope or have costs associated with them, they need to be handled reasonably. Code needs to be written so that items like adding a source, changing a function, or renaming a button are expected and do not become showstoppers.
Creators of Modular, Reusable, and Scalable Solutions
AV project timelines and budgets don’t often have a lot of cushion, making it a challenge to develop unique solutions from scratch. As a result, it is critical to develop documented, proven code that can be modularized and reused when needs warrant. AV programming should be approached like an abstract puzzle where pieces can be interchangeable and expandable, rather than a piece of art that is a static, complex, and/or a singular solution.
AV systems are commonly upgraded, replicated, and evolved over time. Therefore, programming needs to be written in a way that is easy to modify and maintain. Experienced AV programmers avoid writing one-off solutions. Instead, they develop a flexible software framework that can be reused for multiple systems and variations. Not only do these solutions provide efficiency and save money, they also address the need for consistency and ease of device upgrades.
Avid Learners and Committed to the Industry
As in other technology fields (and business in general) if you’re not growing, you’re dying. This could not be any more applicable for AV programmers. Gone are the days of programming simple systems. Those systems are now being served by configurable “no-programming-required” solutions. Programmers are left to handle the most complex and demanding requirements. In doing so, they are challenged to maintain a vast database of knowledge running the gamut of audio, video, control, and networking while maintaining familiarity with a large variety of manufacturers’ equipment.
Additionally, with the rise of new control platforms, the influence of modern programming languages, and shift to IT-centric systems, successful AV programmers need to be committed to learning and pushing themselves to regularly adopt new languages and software platforms. Those who are not committed to keeping up with the industry and programming trends will have limited effectiveness. Unfortunately, programmers don’t typically get to dictate what AV solutions are implemented. As a result, they need to stay current on the latest industry trends, hardware releases, software solutions, and programming techniques to stay on top.
Addressing the need for programming and the mission to become or groom a highly skilled AV programmer has been a focus for many in the industry throughout the years. Despite not always receiving the respect they deserve, AV programmers are a complex makeup of skills, interests, responsibilities, and personality traits. Just like mastering any other specialty, the road to becoming a successful programmer and the commitment level associated with it is demanding and extensive. While an AV programmer may not have all the skills of a software developer, a software developer does not necessarily make an effective AV programmer. With that in mind, carefully consider who is entrusted with programming your AV systems.
Steve Greenblatt, CTS, is president and founder of Control Concepts, a provider of specialized software and services for the audiovisual industry.