Success doesn’t mean that you don’t have problems; it just means that your problems have changed. Quite frankly, it’s preferable to face the problems associated with having a booming business than the ones that you have when business is slow.
As your company’s client base grows, and both the number of projects in your funnel increases and become more complex, you reach the point where the programming for each requires more labor hours. Matching standardized equipment lists in system design with standardized control programing obviously reduces workload and the labor overhead of each project, but since no two projects are ever truly identical, there’s always going to be programming work on each project that can’t just be copy and pasted from other systems. Once your company is at that point it’s time to consider outsourcing the work to a contractor.
So if you’re going to subcontract the programming for systems to a freelance programming contractor, what do you need to know in order to decide to subcontract?
First, remember that time is money. Your approach to every process you have should be: “How can we do this the best way possible?”
To figure that out, apply the “Make/Buy” analysis, which is one of my favorite tools.
Solve the answer to this question: Is it more time- and cost-effective to maintain your current programming staff, hire and train more programmers or use outside contractors on a contract basis?
Begin by assessing your team’s strengths and weaknesses. Do your best programmers have the resources to carry on or do they already have a full plate? How long will it take you to find and recruit a promising potential programmer, and train them to the point where they stop being a liability and start being an asset?
Subcontracting is an obvious fix for that: Programming contractors already know their brand of control systems inside and out. No training required.
Outside talent also saves you from reinventing the wheel. Just like control system manufacturers develop and release software modules for specific applications or third party hardware, programming companies also develop their own solutions in-house, and paying for them will likely be cheaper than developing them on your own.
Even if your company has a ninja programming team, having a business relationship with a contract programmer is still advisable. Two heads are always better than one, and when you’re paying an outside contractor for a specific project your in-house team are learning from them at the same time.
How do you pick a programming contractor? Where do you find a contract programmer? Try asking your control system vendor: It will know experienced, often certified freelancers that can be counted on. Call your vendor’s account manager and ask for a referral to a competent programmer. Knowing that your prospective programmer is vendor-approved is a big plus.
Interview her pretty much as you would look for an employee: experience, skills and training, and review a portfolio of her work. Get references and ask other AV pros what their experience has been.
Be aware that the best programmers are often in great demand. Discuss their availability and workload, and what they’re reasonably able to deliver to you in terms of deadlines.
In my experience, it makes sense to contract out programming more often than not. Your mileage will of course vary, but now you’re equipped with the right questions to find out for yourself.