Outsourcing, once thought of as the panacea for high IT overhead, has come under fire lately for several reasons. Hidden costs have come back to haunt penny pinching technology companies.

Off shore vendors are supposed to save you money because of their lower labor and overhead costs. However, Darin Stahl, Lead Analyst for Info-Tech Research Group was quoted in Executive Brief as saying: "Info-Tech has noticed that 44 percent of initial agreements were entered in order to reduce costs, and yet 39 percent of agreements result in increased annual costs." What pitfalls lead to such poor returns, and how can your company avoid them?

Locate a reputable vendor – If you develop a good partnership, you could save money, but the choosing the wrong partner will cost you in the long run. You should choose someone with appropriate experience who will "do it right the first time" and in less time than an inexperienced vendor. If you are looking for price and price alone, you may just get what you pay for – not much. Keep in mind that you must pay for what a person brings to the task, their expertise, skill, knowledge and tools, not just the clocked hours they spend on your project.

Referrals from business associates who have gone down the outsourcing path before you can help. Request resumes of the people who will be working on your project. Ask if the vendor has any certifications that would give them credibility.

Determine if the company you select is economically viable, so you don’t get part way into the project to have them go out of business. Explore how they are faring in today’s economy. If their pipeline is drying up, they might have to leave you high and dry too.

Define the project – Your first challenge is jumping the hurdle of assumptions, yours, your staff’s and the vendor’s. To begin with, design your application with the user in mind. Don’t rely totally on high-level managerial overviews; instead, get additional hands-on user input during the design phase. Users know what information must go into the application, what data they need to extract, and what format that output should take. Don’t underestimate the value of the guy in the trenches.

When writing the specifications, remember that you bring knowledge of your industry, and your experiences in it, to the table that a programmer doesn?t have. Your background may lead to assumptions, gaps in your instructions that cannot be filled by a software engineer who hasn’t had the same exposure. Talk with the developer; ask questions regarding his understanding of, and his plans for executing, your instructions.

Contract signingProtect yourself ? Write a contract that gives you ownership of the finished product, be it source code or the domain name if you are having a web site constructed. Incorporate flexibility to renegotiate terms and pricing as the project evolves. Include how mediation will occur should a conflict arise. Also, consider the legal issues affecting the development of your product, the tools and materials that will go into it. Familiarize yourself with the labor laws both at home and in the area where the work will be done. Determine what protections are available for your intellectual property.

Manage the project – Failure will certainly follow writing a set of specs and turning them over to a third party expecting that your task is done. Be they freelancers at home, or an overseas outsourcing company, people working on your project need your supervision. Otherwise, your project, like Topsy, will just grow without proper direction. One person should be appointed as the responsible party to act as liaison between you and your vendor, someone who understands both sides of the coin. Schedule and require timely progress reports.

Communicate – Be sure that you and your vendor take advantage of the surrounding technology. Web conferencing is a good way to communicate and build team awareness so workers don’t feel they are operating in a void.

Use off the shelf applications for global activities, such as texting, project management, and shared calendars to make scheduling easier. You can use automated e-mails to keep everyone on track by gently reminding workers of deadlines without singling anyone out.

Test the progress – Don’t wait until the project is finished to review if it meets your criteria. It is essential to set check points along the way, and do testing as the project progresses. It is easier to correct a mistake when it happens than to fix it later and have to redo everything that followed.

Have someone outside the programming department do your testing. A fresh eye with a different point of view works best. Have a qualified user perform the testing; they will look at the product much differently than a programmer does. Users can pinpoint subtleties that a technology-oriented individual may miss.

Outsourcing can work for you, if you are willing to put in some work yourself to actively oversee and evaluate the process.