The best programmers are much more productive than the average ones. To ensure that your software development project isn’t going to be a complete flop, it’s important to have the right team actively working to innovate and reach your goals.
Once upon a time, only the largest organizations dared to split development between locations, and they were the earliest to take advantage of modern telecommunications to go offshore in search of talent. Whether you’re a startup or a larger organization that is looking to augment your existing development team, outsourcing could be a practical solution.
However, outsourcing might not be right for every situation or every company. We’ve highlighted the pros and cons you should consider before making the decision to outsource your software development.
The Pros of Outsourcing Your Software Development
It is pretty easy to find outsourcing vendors that specialize in one or more of the five common technology stacks—Microsoft .NET, Java, LAMP, C/C++, and COBOL. Some vendors also specialize in just one of these, but it is also common for vendors to have a track record with two or three skill sets.
When searching for an outsourcing vendor, it’s important to identify if they have expertise within the specific technology stack you need for your product.
Depending on the size and knowledge of your existing software development team, outsourcing to a team that specializes in that specific technology stack will provide you with the manpower and skill sets that are required to develop your product.
Augment Your Existing Team
You can use an outsourced team to augment the work of your existing development team. This approach gives you the raw manpower required to develop your software, as well as needed technical expertise your internal team may not possess. In addition, you can get around-the-clock development when the outsourced team is offshore and multiple time zones ahead, which will help you get your software developed quickly.
In the past, it was common to outsource to a U.S-based company to acquire special technical expertise, and this is still true today. Face-to-face communication with such a team is very valuable in the early product definition phase. Then giving you the choice of using your internal team or the outsourced team to do the coding.
Cut Burn Rate
The need to cut the rate at which you’re burning through capital can lead to difficult choices. Highly paid programmers may need to be sacked to extend the life of your company.
In the typical scenario, a software company or IT department starts out by hiring a full engineering team to create a software application. Then software development takes longer than expected. Or the target market was misjudged and it takes longer to close business. Or both. The use of outsourcing in this case can mean the difference between corporate life and death.
Using outsourcing to replace employees can be tricky. You need to keep key employees as a core technical team capable of managing the new outsourced programming team, and to do product management if you are a software product company.
Of course, a better approach is to use outsourcing to minimize costs right from the start. Using outsourcing is like a marriage. It takes commitment from both sides to make the relationship work. Good communication is required.
The Cons of Outsourcing Software Development
Many people who outsource to India want 24-hour development. For others, the time difference is a big challenge. The time difference between the West Coast of the U.S and India is 13.5 hours. It’s a little better for the East Coast, where there is overlap between the East Coast morning (8am EDT) and late afternoon in India (5:30pm).
The time difference is not a showstopper for outsourcing to India, but it is a factor you should take into consideration. In general, you should expect to have regular direct communication with your offshore team. If you don’t mind the occasional late night or early morning conference call or IM chat, there is no problem.
In fact, some companies prefer to work with India because it enables full 24-hour software development. This takes careful coordination if engineers you have in the U.S are working on the same source code as your outsourced engineers in India.
Poor communication can be a bigger concern than security or the safety of your intellectual property.
Most communication issues with an offshore team are caused by language and cultural differences. A lot can be lost without the intimacy of direct communication. And without good communication, barriers are created between your local people here and “them”: the guys one or two oceans away who are supposed to be writing your software.
Many companies that outsource use weekly conference calls and then exchange emails and instant messages as needed, usually every day. Frequent status reports and constant communication will help ensure that your engineers are working on the most important tasks.
Groupware and collaboration tools can be divided into three categories:
Communications: Email, faxing, web publishing, instant messaging. Techniques in this category are usually not live or in real time.
Conferencing: Telephone conference calls, instant messaging, electronic whiteboards, chat rooms, discussion forums and video conferencing.
Collaborative management tools: Electronic calendars, project management schedules, knowledge and document management.
Difficulty Finding the Right Outsource Partner
It can take months to find and evaluate outsourced teams.
Are you overwhelmed with the number of software outsourcing vendors? It is amazing how many there are - and they all seem to have come out of the woodwork in just the last couple of years. In today’s fast-paced and cost-constrained world of software development, no one can afford a long learning curve and the expense, in both time and money, of making a mistake.
Therefore, you need outsourced engineers who work together as a cohesive, professional software development team, following a well-defined software development process. Not a bunch of programmers thrown together in a room, working on the cheap in some exotic foreign country. Your team needs to be expert in the technology you need. You want to find a team that can quickly execute your software development projects, not one that will be learning on the job and on your nickel.