Control System Programming vs. Software Development: Is there a Difference?

Firms providing a mix of experienced control system programming and software development are able to tackle the expanding needs of AV control.

David Glassman Leave a Comment
Control System Programming vs. Software Development: Is there a Difference?

While “programmer” and “software developer” are often used interchangeably, there are in fact some key differences between the two roles, especially in the AV control space.

When we refer to AV control system programming, we are essentially defining the process of creating a program that allows the user of a room or space to interact with the audiovisual equipment in that location from a single, easy-to-use interface (most commonly a touchpanel or iPad).


A programmer uses various programming languages – the process referred to as writing code — to develop these programs. These languages are most often, though not always, proprietary/manufacturer-driven languages (such as AMX NetLinx or Crestron SIMPL). A good programmer tends to be patient, highly detail-oriented, and excellent at problem solving.

Programmers tend to be specialists in their given language or area of expertise.

Software Developers

Software developers typically possess the same skills as a programmer and technically do “programming” as well. However, in the AV industry, their role is focused on developing one-off/custom solutions, products, or creating tools that solve problems, as opposed to the programmers, who are creating the more fundamental programs to support user interaction.

Software developers are often generalists in a wide variety of software-related areas.

Scope of Work in AV Control

The scope of control system programming work tends to vary greatly. The problem space for control system programmers is a physical one. Their deliverable is a fully-working system that allows an end-user to easily interface with their environment. Software development often focuses on the tools themselves, which ultimately make it easier for the programmer to do his or her work.

These tools, while often in the realm of  AV control, solve a wider variety of problems that may be outside the scope of traditional control system programming projects.

Very few programmers transition to a software development role. Thus, it is uncommon to find integrators and AV programming firms who provide both custom development and traditional control programming.

One example of this is the development of control module solutions, which are tools that help simplify programming for AV manufacturers’ equipment and help increase adoption and integration.

These can also make it easier for a programmer to simply drop into their existing system program without having to spend time writing new code.

Other development projects include custom web applications utilizing Node.js, HTML5, and CSS as well as custom “middleware” solutions that act as intermediaries between scheduling services such as products from EMS Software and Asure Software, and resource management applications like AMX RMS and Crestron Fusion.

In contrast to the role of the control system programmer, where knowledge of the devices and specifics of the AV industry are crucial, the custom software developer can succeed with far less industry-specific knowledge (though it will be gained as time goes on).

A strong foundation in computer science and experience using more common/standard programming languages such as C#, Java or Python are probably more useful, particularly when just starting out in this role.

In the AV industry, it is uncommon for people to be experts in both areas. Each require a different set of skills, level of knowledge, approach, and area of focus be successful.

Control system programmers tend to get more involved in the signal flow, functionality of the AV system, troubleshooting systems, and the user interaction with the technology. Software developers tend to focus on solving specific problems and needs, and work on applications that target those requirements.

Very few programmers transition to a development role or master the shift in mindset. Thus, it is uncommon to find integrators and AV programming firms who provide both custom development work as well as traditional control programming.

AV Control and Software Development Going Forward

Despite the ongoing shift to more “plug and play” solutions, which inherently reduce the role of the programmer, there will always be systems and problems that are too complex for these “no programming required” solutions and will require experienced programmers and software developers.

Furthermore, devices and systems are becoming increasingly complex and interwoven, requiring a constantly improving skill set on the part of the programmer, as well as the developer who can work hand in hand to problem solve and address specific needs.

As the influence of more standardized programming languages continues to grow in the audiovisual industry, there will be increased demand for applying the software development approach and skill set to both traditional control system programming projects and customized applications.

Firms that provide the mix of experienced control system programmers and software developers, with a focus and commitment to both, are better positioned to tackle the expanding needs of clients and overall complexities of today’s AV control world.

If you enjoyed this article and want to receive more valuable industry content like this, click here to sign up for our digital newsletters!

About the Author


David Glassman handles programming and software development for Control Concepts.

Commercial Integrator Magazine

Read More Articles Like This… With A FREE Subscription

Commercial Integrator is dedicated to addressing the technological and business needs of professional integrators who serve the small and midsize business market. Whether you design, sell, service, or install… work on offices, churches, hospitals, schools or restaurants, Commercial Integrator is the dedicated resource you need.


  • Carl Eckhardt says:

    Howdy. I am here at a new job where I am trying to identify who I am and what I need to know that I don’t already know. I started out as a hardware systems guy and then onto Semiconductor where coding created structures specifically to deliver automation for physical, logical, and top level integration of SoC products. But it also required the development of presentation layers as well as underlying modules of code to support persistence and business logic. C, C++, scheme, Pl1, TCL, python, etc. To get the job done. Then UDP and TCP and pub/sub, packet design crept in.

    Now I am faced with control logic, possibly requiring RTOS or not. This industry used code generators synchronized to a simulated clock to produce C++ that handled low level drivers to servos and signals. And I am not sure what lurks beneath me where I have made assumptions on how it works and/or what hidden knowledge is keeping me from getting 1st pass success for my zero time implementations.

    So my question is to ask who am I? A little of both? I am new to control systems and don’t know so much about what to use when and where. But I have written switch level logic simulators and understand timing simulators as are found in Verilog and VHDL.

    Still. Right now that isn’t helping as much as I initially hoped.

Leave a Reply

Your email address will not be published. Required fields are marked *