Outsourcing, the very word for many paints a picture of offshore labor cranking out shoddy code at bargain basement rates. Despite the stigma attached to outsourcing, many still choose to outsource. This is because most companies are bound to gain a competitive advantage by cutting their costs. Bad outsourcing decisions usually trace back to not putting different vendors through a well-designed selection process.
Doesn’t outsourcing affect the quality? The vendor you hire decides the quality of your software. When you choose the right provider, it'll reflect on the quality. Many companies choose the wrong provider and pay for it dearly, in time, money, delays, glitches, security problems and other issues. On the other hand, when you work with the right developers, they not only adhere to standards to ensure quality, but they focus on your context, taking into account the intended results and overall objectives. Simply put, the right team is more thoughtful in their approach compared to merely slapping code together, quickly. A quick Google search isn’t enough to identify the right vendors.
The Red Flags/What to watch out for:
They give you an estimate up front without asking enough questions to understand the details of your project. Which means, either the firm doesn’t know what questions to ask, or they plan to bury you in change orders once you’ve committed. A good company, which has worked with multiple clients from various industries serving different requirements, understands you have to ask for the minimum amount of information before you can reach an estimate, based on the level of effort.
Lack of transparency. If the vendors you’re considering are reluctant to let you speak to their product leaders, do not give you references you can talk to, or don’t give you a clear insight into how they arrive at their pricing, then you should take a closer look. There are legitimate reasons why they might not want to reveal certain things, but if they are edgy and secretive beyond the reasonable, look elsewhere.
You ask for a sizeable discount, and they give it to you. This sounds a bit odd, but if you ask for a 30 percent discount, and you get it, it could mean the company is prone to marking up their work unreasonably. We’re all in this business to make money, but if a vendor comes down to 30 percent, they were probably trying to see what they could get away with, and they will likely do it again.
Cultural Issues. It’s naive to expect no cultural gaps when you outsource beyond your borders. Nevertheless, outsourcing to countries and cultures not used to being accommodative to different cultures can prove to be more than merely a headache. Fluent English isn’t enough to judge whether they can communicate effectively. For instance, if the vendor you’re considering doesn’t communicate with decent U.S. business etiquette, shares inappropriate information which could potentially be a privacy violation or employs aggressive sales practices, it usually means they haven’t worked with U.S. clients.
Management Issues. Some firms come with experience and decent cultural awareness, but they are immature as a business and can’t offer the level of professionalism some clients need.
Poorly organized work sample. Look for a well-polished list of case studies with references rather than a huge list of “sites we’ve done.”
Guarantees which sound too good to be true. “Our developers work on your project the whole day and are available 24/7,” how pitiable does it sound? You do not want those developers working on your project. Also watch out for promises like, “We guarantee you won’t find a single bug,” primarily overstated assurances. Professional companies shouldn’t be speaking so.
Be wary of companies who come with a broad range of rate cards. This could be an indication the company has many juniors they plan to put to work. An experienced firm will have a clear and straightforward way of describing their rates.
Make sure the vendor you decide to go with is not short on serious tech skills. End of the road, it’s the skill level of the developers and the project managers which will decide the quality of your project.
If a company advertises more than about three things as their best technical skills, be suspicious of the jack-of-all-trades. Only big firms can be excellent at various things, and small companies who claim to be good at a laundry list of skills is most likely mediocre at best.
When a company talks about one of their accomplishments with you, ask them whether you can get the same developer to work on your project. If most of their developers who were involved in their most impressive work aren’t available, it probably means they are experiencing high attrition, and their best developers have left or worse, they might be exaggerating their claims.
Speak to the project manager assigned to your project to clear any doubts you have. If the firm you’re considering cannot provide a dedicated project manager and plan to simply assign tech leads and call them a PM, they will never make a good substitute for a dedicated PM.
They suggest sending progress reports every month rather than update you frequently on progress. Ensure you have enough deliverables to keep a close track on the progress.
What to look for in a vendor?
Ideally, the vendor you decide to go with has a local presence, too. For instance, if you’re based in the US, the firm you choose, has an office there, too. These vendors are more likely to understand your industry, business model, goals and processes since you are working within a similar cultural context.
Hire a technical resource, locally to help you manage the project from your end. This person should know enough to review the code briefly and know if you’re getting ripped off. This decision will improve the likelihood of success.
The less money you spend, the more management you'll have to provide. This doesn’t have to be a bad thing. Some prefer working directly with the developers.
Try to go to smaller firms with a good experience rather than large firms who have multiple layers of management, which leaves a lot of room for miscommunication and unnecessary overhead.
Start with a small project. See how the project is delivered and how you communicate. If things don’t go the way you envisioned, then move on.
Build a good rapport with the team working on your project. You get better quality work from people who like you.
Be very explicit and organized with your directions. It's not their fault if you can't communicate your vision effectively.
And don’t just go with the least expensive developer. Ideally, the right developer will bring tremendous experience from working on software across various industries.
Ask questions. Do they prefer Agile? Are they aware of the latest standards and technologies? How much of a priority is security? What are the safeguards in place, to keep your software development on track, if a situation arises? Do they provide more than the basic level of QA testing? With this kind of insight, you’ll be better prepared to select the right vendor who’s focused on the success and quality of your software.
Your preference might still be to work with someone locally, but the benefits which come with outsourcing are hard to ignore. Either way, nobody is out to rip you off, but competence can be an issue. No company, local or outsourced, can sustain themselves by 'ripping off' customers. A little due diligence can go a long way, check out their previous work, get references from past clients and so on. If they can't point to those, then it doesn't mean they're duping you, but from a risk perspective, it's probably better to walk away. If you're still concerned about quality, divide your project into smaller deliverables and ask the company to complete the little piece of work. You can then without putting too much on the line, assess cost, quality, and timeliness.