Outsourcing is commonly thought to mean the offshoring of American jobs to some less deserving foreign destination. However, outsourcing means to hire an outside company regardless of location. They might be down the street from you, but it is still outsourcing if your company hires them to do a task for you. Offshoring means to hire staff or create an oil rig not on your shore. It might be on an island, in the middle of the sea, or in a foreign country.
It is common for Americans to hire companies overseas to handle programming tasks for them. India is the most famous in this niche while Eastern Europe has many companies that are often better than their Indian counterparts — at least for now. If you hire overseas, your choices include:
(1) Having an overseas company do jobs for you on an on-call basis, or work on a specific project until its completion.
(2) Hiring an overseas company to do a specific amount of hours a week for you such as 10, 12, or 18 hours a week.
(3) Hiring a dedicated half-time or full-time employee from an IT leasing company. This allows you to interview the indivual programmer and perhaps communicate directly with them more easily.
(4) Hiring your own employee overseas, or perhaps creating your own office.
Problems with overseas companies
The problem with hiring overseas companies to do tasks for you is that they typically have one or more project managers, and many programmers of varying skill levels. The high quality programmers are normally either completely unavailable because they are working on a large project, or they might have a little bit of time. What normally happens is that the company will try to stick you with one of their worst programmers, or at least a very mediocre one at best. You won’t be able to get quality work done with them. So, you go to another overseas company and the same thing happens a second, third, tenth, and one hundredth time. By now, you’ve learned your lesson. Hire the programmer before you hire the company. Even if you get a good programmer, there is no guarantee they won’t quit, die, get pregnant, or get run over by a rick-shaw.
Hiring your own staff
In my experience, I tend to get much higher quality work done when I hire myself. I am very picky, and only hire people I am confident in. Whenever I hire an outside company, they typically pick workers who are either poor at communication, unfriendly, not particularly talented at their task, or who quit when I need them most. You can hire your own staff in India. You can hire freelancers. You can hire someone full-time who will work from home for you if he/she has a good internet connection and reliable electricity (which is a big problem in India.) You can also rent your own office space in a place with reliable electricity and hire your own people.
If you need only part time help, try to find a reliable vendor in India or Belarus and interview the programmers one by one until you find one programmer and a few backups who you can test. If you need a single employee, an outside vendor or leasing company might be your best option. You still need to interview and give quick tests to the programmers to keep them honest. But, if you need two or more full time programmers in the long run, it might be better to look into getting some office space. Here’s why.
Get your own office in India
Getting anything done in India has a lot of red tape. You can get an office there, but it doesn’t need to be under your name. You most likely will not be there to manage it in any case, so you will be forced to rely on others. Be wary of the fact that people in India don’t always do what they are supposed to or what they promised to do, so you will have a few surprises along the way. Try to be tolerant of a fair amount of nonsense if you are able to get your office to function. The real benefit here is that you are no longer at the mercy of other companies for picking your employees. You pick them yourself. You would have to visit India and make some new connections which may or may not work. In the end, it may be easier to have your employee work in some other IT company’s building under their supervision if you give them a fee for their cooperation.
Optimize personalities & skill levels of the programmers
When I work with employees at other companies, I am never completely satisfied with their work. Some are fairly good, while most are miserable. If you can pick your own staff, you can pick programmers with exactly the type of personalities and skill levels / skill sets which you need for your business. If you like them a lot, you have the freedom to give them larger raises to increase the likelihood that they will not quit. In India, programmers like to play musical chairs and change jobs every few months. If you are running a serious operation, you cannot afford this. Give them good working conditions and pay so that they will stick around. You are running a company, not a circus after all.