Outsourcing Software Development Offshore: the Advantages and Disadvantages

When considering whether to outsource a softwaredifference between client and offshore vendor. This
project, the following advantages as well as themakes communication very difficult. A question could
disadvantages should be taken into consideration:be asked on Monday, answered on Tuesday, a
Costresponse requested on Wednesday, and a reply on
Cost is the main reason that most companies take intoThursday. To solve this problem, schedule weekly
consideration when outsourcing a project. Softwaremeetings. If a difficult problem arises - schedule an
engineers outside of the developed countries areextra meeting to discuss. Any decent offshore vendor
compensated much less than their counterparts inshould understand the need for good, timely
developed countries. The average salary for acommunication and be willing to meet on your
software engineer in India is $10,000 per year. Theschedule.
saving in salary can be passed on to the client. There- Low quality: If the offshore company produces low
are some reports ( that salaries in India are rapidlyquality code or architecture, this will definitely increase
rising. Maybe in a few years the cost benefit offrustration within the company. This needs to be
outsourcing will not be so obvious. However, there aresolved by having all people who will be responsible for
many other important advantages to outsourcing thatmaintaining the code/architecture involved early on in
one should consider.the project. Code reviews need to be done frequently.
TimeIf frequent meetings/code reviews/reviews with
There may be few people in the company with thecustomers are not done, then the chances are you will
right skills to complete a particular project. In this casereceive a product that does not meet requirements, is
the project is in risk of not meeting its deadlines. Thepoorly written, is not maintainable (or only by the same
company could company hire more skilled peopleoffshore vendor - fees will increase for sure), and is
(either full time staff or contractors) and management.not scalable to your liking.
However, this would be expensive and after the- 'This isn't what I need!!' - If the customer is only shown
project is finished you may not need the extrathe product at the end of the development cycle,
manpower. Outsourcing could be a solution. There arechances are this is what you will hear! Generally,
many outsourcing companies with many differentcustomers are not very good at describing exactly
specializations. The right company could provide thewhat they need. Sometimes, it is because they do not
skills and manpower necessary to meet any strictknow themselves what they need. The earlier you can
deadlines.show the developing system to the customer, the
Skillsbetter. Only then will you discover that maybe the
An outsourcing company could provide the client withrequirements weren't clearly communicated.
skills that the client does not have. For example,Be warned that the offshore vendor is easily made a
maybe the client wants some software coded in ascapegoat. Disgruntled employees will jump at the
particular technology but the client does not understandchance to blame the offshore company for any
the technology. The outsourcing company couldmistake made. The employee should be reminded that
provide these skills to the client. However, bear in mindnobody is perfect. If a mistake is made by the
that if you are outsourcing a project outside of youroffshore company you could empower the employee
companies skillset, this could pose problems withto find out the reason for the mistake, and ask him/her
standards and maintenance later on.to strive to solve the problem by working with the
Empowers Individuals in the companyleader and the offshore company.
Because the offshore company will now be doing theTesting more difficult
'grunt work', this leaves more time for individuals withinGenerally, the testing phase in an outsourced project is
the company to concentrate on 'higher' tasks, such asmore difficult than an in-house. If you test a piece of
gathering requirements, design and management. Thesoftware that was developed offshore in-house (and
smart individual will find herself leading others, ratheryou certainly should) and find a problem, this needs to
than general maintenance and development work.be communicated to the offshore vendor. This could
Pitfalls of Outsourcingcause problems as the offshore vendor might not be
Needs constant managementable to reproduce the problem. It could be easily fixed
This is the number 1 reason why outsourced projectsif only they could see the machine that it happened on.
fail. You need a good manager, a leader who is inOr maybe the problem isn't properly communicated.
constant communication with the offshore vendor. TheThe 'Entering the testing phase' page will help you
leader needs to understand the requirements, andhave a smoother testing phase.
each and every day make sure that the offshoreCompany Morale
vendor also understands the requirements. The clientChoosing to outsource a project instead of developing
should make sure that standards are being met byin house could affect company morale. Employees
viewing code, looking at latest builds, viewing the bugcould feel that their jobs are threatened. If jobs are at
tracker, viewing language resource files, etc. A lack ofrisk, then the employees should know as soon as
constant management generally means the project willpossible to reduce the spread of bad morale. Likewise,
get out of control.if jobs are not threatened, then the employees should
Increase in frustrationbe told of the change, and that not only are their jobs
An increase in frustration in the company could arisesafe, but the employees will be given the chance to do
for a number of reasons:a higher level of work. See 'Introducing Outsourcing to
- Time difference: Usually, there is about a half dayyour company' for tips.