Outsourcing Programming

Publish date:
Social count:

I see a lot of new companies providing subcontracted Crestron and AMX programming to CI dealers. We currently do our programming in-house, but have toyed with outsourcing. Should we?
--Name and address withheld

Heres a goal: your company should outsource everything that doesnt distinguish you in the eyes of your customers. This allows you to concentrate on the parts of your business that make you great. Does programming fit here? First, lets look at all the parts of your business you can subcontract out.

How about starting with janitorial services? As much as you want to save money by pushing a Dirt Devil around the office, your employees time is better spent elsewhere.
How about accounting? Sure. Hire a subcontract bookkeeper to handle accounts payable, data entry and bank reconciliation. This will free your office staff to concentrate on purchasing, invoicing and money gathering. These are accounting efforts that your customer sees, and so, should be handled in-house.

Its okay to subcontract pre-wiring, especially if you concentrate on higher-end jobs. Why? Because your well-trained (read: well-paid) techs should spend their time doing high-end trim, tuning and finals. Have the electrician on the job site pull the wire with your really cool wire diagramsthe ones that your staff was able to produce because they werent popping tidy bowls in the toilet.

Now we get to programming. Following the above rules, you would keep your programming in-house, because programming is a high-value item that your customer sees. And theyll judge your value on the quality of the system interface. But subcontract-programming houses exist, and seem to have enough market to stay in business. Why is this? Because, as you know, having a programmer on staff is expensive. And having a full-time programmer working part time is really expensive. So these subcontracting firms appeal to CI businesses that are too small to afford a full-time programmer and larger companies that have spillover work which cannot be handled in-house. As a result, most of these companies churn through their smaller clients rather quickly, as these small guys grow and hire in-house staff.

But your question raises a bigger issue. Im always surprised when CI companies write a ton of new code for every job that they sell. They do this because the sales guy configures a new system for each and every client. The concept, although wrong, is simple: "Were a custom installer, so each job should be customized." This puts a tremendous amount of pressure on the entire operation, including the programmer who has to play catch-up with every tweak and change.

If you standardized 90 percent of your offerings, and then standardized how the systems are configured, you would find that your programmer can write one big, beautiful, eye-popping program and make small modifications to it on a project basis. Even the largest CI firms should be able to handle all of their programming needsonce standardizedwith one good programmer. And that programmer should have extra time to work on neat new interfaces and other parts of the system that make the system look great.

Which means small- and mid-sized firms may have an employee with shared responsibilities, say programming, design and project management. Of course, programmers the land over will howl in derision upon hearing this, because, well, theyre programmers. But pay no attention to that petulant keyboard tapper. Theres no reason for your company to be spending so much time programming; youre not Microsoft, for Petes sake.

So in conclusion, I say keep your programming in-house. Its too important to subcontract. And now find ways to reduce the amount of programming that you have to do by standardizing your systems and re-using your code.