Outsourcing or hire new programmers?
John Gonzales
Posts: 609
When it comes time that you need extra programming staff, what are your experiences with outsourcing or hiring additional programmers? One of my biggest concerns about outsourcing are receiving compiled code that we can't easily modify or troubleshoot on site. Of course hiring additional programmers tends to come with large overhead as they relate to personnel expenses. I'm curious what others do when you need extra programming help, and do all/most independent programmers tend to send compiled code and not actual .axs/source code? I know there are many independent programmers here in addition to dealers, so I look forward to everyone's comments.
Thanks!
-- John
Thanks!
-- John
0
Comments
I think that depends on who you hire as an independent. Anyone that hires an indpendent programmer should confirm with that person or company that they will send you their source code. I, for one, regularly provide my source code to the installing dealer, sometimes while the project is on-going (i.e. before I get paid). I feel that I am an extension of the dealer's in-house staff and therefore, the code belongs to the dealer. There is a risk on my part that the dealer will take my code and install it elsewhere without my involvement, but I feel that if I am providing a quality service to that dealer, then he will come back for repeat business. If he only wants me to write a program so that he can take it and run with it, then he's probably not the kind of customer that I want to do business with any way. I build relationships with my dealers so that it is win-win. In that way, they have no concerns about the source code and I have no concerns in giving it to them. However, I do know that there are independents who don't work that way.
The benefit to out-sourcing is that you may find that one month you are overwhelmed and need the extra staff. But other months you may not. If you hire someone in-house, can you always keep them busy as your business grows or do they end up filling time in between projects. If you have enough programming to keep someone busy full-time, then it probably would make more sense to hire the extra staff. But even then, if you are growing that fast, will that programmer be up to speed on day 1? And even if he is, how much time will it take as you continue growing before he is also overwhelmed. Independents can fill in the gaps between these different scenarios without over-burdening your in-house personnel, so they can do what they are good at.
Independents also have the benefit of amassing libraries of modules that we can use over and over again, while an in-house programmer may not have as extensive a background. Since I write code for both AMX and their friendly competitor, I regularly will move code from one to the other. In that way, I know how a device will work even before AMX releases their own block of code, in some cases. Will an in-house programmer have that same experience?
There certainly is no single right approach. You need to consider what fits your business module best and the types of installations that you are likely to provide. Good luck with whichever approach you follow.
Just my two cents as an independent.
Sheldon Samuels
IPS Resources LLC
www.ipsresources.com
It has a raft of niggly little issues to this day, and they will not release the source, so I'm looking at re-wiriting the entire thing. I'll not go that route again. At least I got a very slick panel design out of the deal. They couldn't protect that; I won't viloate the license by re-using the design, but I can continue to use it for this customer, so I don't feel what we paid them was a complete waste.
Would you want a home owner that got a bad taste from one of your competitors to tell all of his or her friends to never hire an AV contractor because they are all horrible to work with? If they did, we'd all be out of work.
I would wager a guess that for everyone who might post a message about a bad experience from out-sourcing, others could, if they were brave enough, post just as many stories about problems caused by their own in-house programmers that were simply inexperienced and ended up walking out before a project was completed and that some or all of those same companies found that out-sourcing with experienced independents has worked out very well.
Hiring people (whether in-house or not) is probably one of the toughest part of any companies efforts, especially for smaller companies, like many AV shops. You simply need to find what fits your business model best and then find the right people or person and back it up with a clear contract.
Just my thoughts.
Sheldon Samuels
IPS Resources LLC
Using in house programmers you can get away with pointing in the direction of the job and saying "just make it work" because they have a fair idea of what the company usually provides for customers and you can send them back any time you want to make changes. When outsourcing you must provide the programmer with a much more detailed scope than in house because that's all they will do and you cannot guarantee they will be available to return a month later when something goes wrong.
The programmer cannot provide every line of source code if they have used third party compiled modules.
Generally I would suggest source code consists of the code that ties it all together and not the device modules.
If the programmer is forced to provide source code and is worried about the customer using it in other installs then there are things that can be done to make it difficult for them like removing all comments and using cryptic variable names.
Registration codes can be used (as AMX does) which can be removed (because the source is provided) but the customer has to know a little programming to do it themselves.
A programmer can also make code that will only work on one master.
If this doesn't sound fair then put it in the contract and remember that this is business.
Sheldon - your points are well taken, and your philosophy is respectable as well. We like to take projects on a similar basis, where you're comfortable with the client and there's a mutual trust. Fortunately, we've been in a position where we've been able to pick and choose our clients. I'm quick to walk away from those potential clients that you just don't feel right about.
Also a good point. One thing I've found when you team up with other companies that do the same thing you do, is that it forces you to be very efficient and detailed when you're working with them. If there's a lot of sloppiness in the operation it makes things very difficult for the other people to do their job well. Plus everyone has a different way of doing things. It's always a good reality check when you work with others, because it gives you an idea of how efficient your operations are (or aren't).
--John