You’ve got a huge ERP system or maybe a cross-platform mobile game to develop and the very future of your business depends on its success. The problem – you aren’t 100% sure that your current team can do the project on-time and under budget. You know about software development outsourcing – but you have to make the right choice!
If you’re a business owner with lofty growth goals – an established company making major changes or a new startup looking to make a big mark – then this article is going to be invaluable.
Why should you choose an outsourcing software development firm?
Outsourcing has always been a bit of a controversial topic. On the one hand, the immediate problems of language barriers and slowed down development times – not to mention just getting something that’s wrong – are common arguments against.
On the other hand, if you carefully choose who you outsource to – using an established set of criteria that weeds out the poor choices and leaves you with truly effective options – outsourcing can be one of the most important decisions you ever make. Your decision whether or not to outsource a software development project should hinge almost entirely on the company you choose.
But at the end of the day, choosing the right software developer means big savings, top developers and a superior product than you could develop in-house. This is a tutorial on how you can accurately choose an outsourcing firm.
How to choose an outsourcing software development company
5 questions startups needs to ask before choosing In-house software development VS Outsource software development
It’s crunch time, and you have only one shot to make the right choice, and these tips will lay the foundations of a positive game-changing decision!
*Do your employees really have the necessary skills needed to hit a development home run?
*Outsourcing provides the kind of affordable flexibility that:
*Fills in the skill gaps.
*Expands your ability to develop at any given time.
*Eliminates the need to train or re-train your current staff or hire more in-house personnel.
Type of needs
The question is – is it better to take the time and expense to train existing employees, or pass an important task on to those who already have the skills to perform it well. An analysis of the amount, frequency and complexity of your core business needs should answer this question.
If your core development capabilities aren’t up to the task, whether it’s a single application or an ongoing need, then outsourcing is your ticket to success.
Are you able to hire top tier engineers?
Let’s face it – the top development talents want to go and work in cool places, places with interesting lifestyles and they also want and command top-level pay. Does your company and your location offer these developers all of the work and life-related options they want?
Luckily, outsourcing takes care of this too. Let the other guys spend all the extra money – you can just outsource to them and you only pay for the talent and reap the rewards of their hard work. This is far better than trying to hire sub-par talent who’ll drag their feet and turn out mediocre work, right
Temporary “heavy lifting”
If your company needs to start an initiative that requires a specific hi end skillset to properly do the design and planning, your existing employees may not always be the right candidates to perform an architecture or solution design, propose options, cost analysis, etc.
It’s better to outsource the heavy lifting to make sure that the highest caliber people are working on your big problems. Even if your employees are capable of coming up, or have come up with a solution – in most cases it pays to double check it with an outside specialist.
There are two time crunches when turning to outsourcing makes sense. The first is if you have to get a project kicked-off quickly. Gathering the people, coming up with a plan and getting the ball rolling takes time and significant expense. If you need to get moving fast, then outsourcing is going to save the day.
The other time issue is when you have a rapidly approaching deadline. Suppose you need to get things ready for an investor meeting, beat your competitors to the market or just meet a deadline, then you have to scale your development to meet these needs. If you do this in-house, you’ve got the same problem as we just mentioned during kick-off – time and expense. In this case, turning to outsourcing may be the only thing that saves you.
So, let’s assume that you analyzed all of these points and you’ve made the decision to outsource. Now it’s time to move into step 2…
Offshore software development management and analysis
Now that you’ve made your decision to outsource your development project, it’s time to get into the details of money and management. The right blend of project management and cost determines the quality of the final product.
Don’t be fooled by price
Who is managing your project and how they go about it is really the critical fulcrum that allows you to get the most leverage from outsourcing. Expert and efficient project management makes all the difference.
What happens in many outsourcing cases is that a company will hire a firm without carefully considering the management factor. However, the management provided is slipshod at best, and after a few weeks, the project seems to fall apart. Then the company blames the outsourcer and is now convinced that the whole outsourcing concept is no good – no doubt you’ve heard of stories just like this.
Project management is really the critical key – somebody is going to have to do it!
Outsourcing software development Options
There are basically three ways to go about managing outsourcing projects. Each has their pros, cons and price structures, and you must decide which is right for you.
In-housed managed offshore software development:
The first option is to try and manage the offshore outsourcing resources yourself. This is definitely the most problematic. This is where a lot of the outsourcing jokes and horror stories come from.
Many people overlook the management part of direct outsourcing. This is a big mistake that leads to disasters.
If you go this route, you should have someone in-house who’s ready to take on the management role. As a rule of thumb, you or your assigned manager must be prepared to spend 1 hour per day for each offshore developer you hire. Additionally, here are some of the issues you’ll face with this option:
- language barrier
- different time zones (6-12 hours difference)
- cultural differences
- close time tracking
- deep task management
- no personal contact
Onshore software development
This option is very common, and arguably the easiest because while you’re still dealing with outsourced developers, you’re dealing with people in your country, who speak your language and who you can go and see or vice versa. Of course, this is also the most expensive option, as you’d imagine.
This option usually goes pretty smoothly, represents the lowest risks and is also the most expensive – and most limiting. Your money only goes so far with this option.
Hybrid – Outsourced offshore development using onshore management
Essentially, you use offshore developers who are handled by onshore project managers. In this option, you get to plant your feet in both worlds.
First, you get a native speaking project manager or managers – there is no language or culture barrier to worry about. Second, these managers are also fluent in the language and culture of the offshore developers, so they act as liaisons between them and you.
You get top-quality management and top-quality developers at a lower price. The reduction in headaches is also going to save you a bundle in Advil.
Of course, such a firm should already be established and familiar with this hybrid option. They should already have the skilled managers and offshore developers in place so that you experience a smooth and seamless project development. Keep in mind that these outsourced managers will have years of experience with this very process and are generally more effective than your in-house management.
Although this option is a bit more costly than directly managing offshore outsourcing resources, it’s also less expensive than hiring an onshore-only development firm. Additionally, even with option 1, you still must incur the cost of your own project manager – so often this “less expensive” option is not as good a deal as it might seem.
You should compare all of these options to find out which one best suits your specific needs. However, we have found that by and large, the hybrid solution provides the most benefit for the least trouble.
Outsourcing software development costs
When considering how to pay for your development services, there are two options – fixed or time. Both have their advantages and disadvantages. Here’s a quick guide on how to choose:
For short-term development projects of a few weeks or even a few months, a fixed rate may be your best option. You will know exactly what you’ll be paying and what you’ll get for this fee. On the other hand, this is very limiting. There’s no room for improvisation or flexibility here. You will also have to put in some work up-front to define the full requirements of the project so that a proper estimation can be prepared by your developer.
Even with a set price, you should be ready to encounter unforeseen issues. In fact, you should probably resign yourself to the fact that a second phase of the project – or adding of additional scope to the first – will be necessary to complete it.
For projects that need more than a couple of months to complete – medium to large, this is clearly your best option. With the time-based model, the final cost is never 100% certain. Your developer can give you a broad estimate, but knowing for certain is not possible. The big advantage, of course, is that you can rev up a powerful development engine that works hard to get the job done right.
It’s also much easier to deal with those unexpected issues, changes and innovations that always come with any sizable development.
How to choose an outsource software development company
This section is a guide to help you interview and select the right software development outsourcing company. These are important points, and you’ll find that if you follow this guide, you’re bound to get a quality developer.
- Technical experience
Does the potential outsourcer have case studies that reflect successfully completed work that’s similar in size and scope to your project? They should have used similar technologies, too.
- Client size
Not a critical component, yet it should be considered. For example, developers used to working with huge enterprises may not understand the needs of smaller growing companies. Conversely, developers used to small businesses may not be able to fit into the enterprise-minded system.
- Industry experience
The commonly held belief is that this is a crucial factor. The truth is that it’s not, really. When you strip away the surface specifics of an application, most code and the function it provides is the same. Relevant industry experience is only really important the larger your company and application development project is. A good developer will always be a good developer.
A good outsourcing developer should be able to provide you with several references. Call them and ask them about their experiences. Obviously, you want to hear good things. If you consistently hear negatives – head for the hills.
This is somewhat dependent on the type of engagement you choose. No matter what, though, even if you choose a fully offshore option – try to go with a company that has a U.S. office.
Why? For the following reasons:
- You have a somewhat local point of contact.
- It resolves legal issues with intellectual property, non-disclosure, non-compete and other issues.
- They should carry professional insurance to cover you as well – and a U.S. office will have this.
This can be tricky. Remember, you want to be able to communicate with your developers. There should be at least a 3 hour overlap each day. Meaning that for at least 3 hours, your working day and their working day mesh so easy phone, email or skype communication is possible.
For example, California to India is very difficult, while the east coast of the U.S. to Eastern Europe works pretty well.
At the very least, you want your project manager to be able to communicate with you in English. He or she can then communicate effectively in the native tongue of the developers. Having an English-speaking expert who can discuss the technical and management aspect of your outsourcing project is critical.
Talk to your potential project manager and anyone else with whom you’ll be working. Getting along personally is important – it helps the project move smoothly and it also helps to iron out any issues that arise during development.
Access to developers
Even though there may be communication issues, you should still have access to, and be able to talk to, your developers. At the very least, this prevents your outsourcing firm from re-shuffling the resources and creating inefficiencies in your development.
This is a big one! A good time to judge their responsiveness is during the pre-sales and sales processes. If you find that during this time you have a hard time with getting phone calls answered or returned, wait a long time for emails, etc. – then this is a bad sign. If they’re not responsive when trying to get you to write a check – imagine how things will be once they’ve got your deposit?
We don’t need to harp too much on this – we’ve already gone over some money issues above. Try to stay within the main price levels of the industry. Don’t go too cheap – remember that you get what you pay for, and in the world of software development outsourcing, this is an important rule to live by.
Now you’re ready. You’re ready to find that awesome software development outsourcing company that’s going to turn that big ERP or mobile game into a real winner. Follow these three steps and set yourself apart as a true developer of quality.