Anyone who has spent more than a little bit of time on an AV-related job board can tell you that the positions that always seem to stay open are the ones looking for AV programmers. It’s something I get asked about all the time, “How in the hell do I find a decent Crestron programmer?” It’s a question without a good answer, mostly because there are far too many companies looking for programmers than there are qualified programmers out there. Even mediocre programmers can be hard to find. But why is that? And what can we, as an industry, do about it?
We had a great discussion about this the other day on AV Power Up! It got my little grey cells firing on the subject.
I think the underlying issue is this: AV tends to be an industry that people drift into. The running joke is that we’re all just failed musicians… but there’s some truth to it. We’re a niche industry. Most little kids don’t dream of someday becoming AV technicians (mine might, but she’s been thoroughly indoctrinated by her mom at this point). And the folks who have the best aptitude for AV programming? They can usually find better jobs in software development. Or as business analysts. Or even at law school (a decent chunk of my comp sci cohort ended up as lawyers, it’s all those logic classes that we took). People don’t tend to drift into AV programming jobs. Which means that you either need to heavily recruit them, or you need to find people who are already working in the industry who have an aptitude for programming.
The best AV programmers out there are a little bit like Liam Neeson in Taken… they have a very particular set of skills. First of all, they know how to think logically and rationally. They can take all of the puzzle pieces of an AV system, and then put them together in a way that seems intuitive. To paraphrase my friend Chris (a guest on the show), if we did our jobs well, nobody will even realize that we did it. A well-programmed AV system should simply make sense. But an AV system is more than just its puzzle pieces. It’s often a custom solution for a specific client. A good programmer has to understand what the client wants, how they’re going to use the equipment, and to recognize any and all potential pitfalls. As a programmer, the most important question that you can ask a client is, “why do you want it to work like that?” (albeit phrased in a gentler fashion) It’s not enough to know what the client is asking for. Implementing the spirit of system requests results in far better results than just doing everything to the letter of the request. Not just that, but a good programmer has to think everything out to its logical conclusion. What happens if we add an inactivity timeout, but the CEO plays a movie and doesn’t touch the system for 2.5 hours? What if we add a nightly shutdown, but they have a party? If they shut off all of the music zones, we should probably pause their media player. The list goes on and on. And, finally, you need to have a little bit of ice water running through your veins. When things go wrong, people tend to point their fingers at the programmer. A good programmer doesn’t take it personally, and works to fix the problem. Which is a lot easier said than done, especially when a frustrated technician is calling you at 7pm on a Friday night.
At this point, we’re practically talking about unicorns. Someone hyper rational, who understands what clients need, and has prepared for future requests and emergencies, who doesn’t take it personally when people criticize their systems. Some of this can be mitigated with help. For example, a company could designate a non-programmer to talk to clients and then come up with a theory of operations for its programmers to implement. But you still need to find someone who can put your puzzle pieces together. Short of leaving out a bunch of Sudokus in the break room and seeing who picks them up, how does an AV company go about finding someone like that?
One option might be more internships. Smaller companies might not have the resources, but larger companies would be well-suited to cultivate good relationships with their local computer science departments. Many of the best programmers that I know learned their craft by working with more experienced programmers. I won’t lay claim to being the best programmer out there, but I learned my craft from a more senior colleague and it made me 10x better than if I’d tried to pick this all up on my own. By setting up internships and mentorships, AV companies could produce some great programmers in-house. Some of those programmers would probably move on to other opportunities once they realize what they’re worth on the open market, but maybe that’s just the cost of doing business. And having a larger pool of good programmers would be valuable for our entire industry. Hack programmers make all of us look bad.
Here’s another option, and I don’t think it’s one that most of us have talked about. How about we recruit more female computer science majors into our industry? At this point, Silicon Valley and other tech hot spots have become notorious for their “brogrammer” culture. What if we reach out to the women who want to write code, but don’t want to be hassled for it? Our industry has had its share of problems in recruiting and retaining women, but by and large we have an open and welcoming culture. For me, personally, programming scratches that certain itch in my brain, the one that needs some good problem solving to assuage. I don’t know what my poor brain would do if I didn’t get to do my job. All of the best programmers that I know are happiest when you give them some far-out request and then ask them to build the logic for it. Recruiting female computer scientists to our industry would give them the opportunity to do the work that they love, but in an atmosphere that would be (hopefully) a lot more supportive.
There are also many people who are already working in our industry who could be great programmers if we give them the opportunity and resources to learn. Any technician who asks “why does it work like that?” is probably a good candidate. I’m mostly joking about the Sudokus, but a company could very easily ask for a show of hands to see who’s interested in giving programming a shot, hand out a bunch of logic puzzles, and see who has a genuine aptitude for it.
One of the guests on our show asked how you get good at programming, which I think is worthy of a blog post of its own.
Finding more qualified programmers isn’t something that’s going to happen overnight, but I think it’s something that will have to happen eventually. Either that, or we can just turn everything over to the machines.
What do you think? Am I on to something?