Our company owner has been hearing the buzz about outsourcing software development and wondering if it was something that would be worthwhile for our company. Our company is a single location with less than 40 employees. It seemed obvious to the developers that outsourcing wouldn’t make sense for us. But it wasn’t until our owner just returned from a conference in California last week that he saw the light.
I originally mentioned the issue last fall.
Here’s some of the reasons why outsourcing isn’t entirely practical for a shop like ours.
We don’t always have a formal design process. Oftentimes, the initial design involves a sit-down with a programmer and a customer service rep. The programmer goes to work and soon realizes that an important detail was left out.
No problem. The programmer has several options. If there’s other work that can be done, he might send an e-mail, expecting a response the same day or the next morning. Or a phone call might be made. More frequently, the developer will walk over to the designer and simply ask the question. On many projects, customers will be involved in the design as well.
When the programmer and designer (and the customer) are literally on the opposite ends of the earth, timely communication is a problem. This issue can be managed with proper organization. I have yet to talk with anybody who works in a small shop that is well organized.
Our company is located in the Midwest. It’s often mentioned that you can save money because programmers in India make less money than programmers in this country. We employ a pair of college interns. Even with administrative costs added in, the cost of the interns is less than outsourcing companies. In addition, our full-time developers don’t make much more than the outsourcing companies, who typically want $25 an hour (or more).
If we were in Silicon Valley or other high-priced labor markets, the salary savings argument makes more sense.
In larger companies, they are already dealing with multiple offices. They have developers spread across these offices. Infrastructure is in place for personal communications and data communications between the offices. To outsource programming isn’t much different than opening another branch office.
Our shop is one location. We have no facilities for transferring development databases to another office. Opening the first “branch” office is a much bigger deal for us when considering administrative costs. It could double our communication costs (e.g. having to add a second T1 line).