Posts

Outsource or not outsource: offshore software development

Software is everyware, sorry, is everywhere. Everything you can put your eye on is somehow connected with software. Every product or business process needs a software solution. No wonder software development market is growing day after day, hour after hour.

And software development is now not only the privilege of a highly developed economy but a worldwide industry. It  involves people and businesses from practically every country. Moreover, it is a current trend for mature businesses to have their software development departments offshore or outsource its software development to specialized companies overseas.

Advantages

Offshore software outsourcing has proved to be an effective model. The formula of success is very simple: high quality services at reasonable prices.

But let’s list all the advantages of offshore software outsourcing comparing to inhouse or local market software development:

outsourcing advantages

  • Time saving. You don’t have to waste time and efforts to hire your software developers and provide a needed training for them. You also don’t waste time waiting until your developers become a real team. While outsourcing developers already have a well trained and loaded to work crew.
  • High technical skills and training. It is an already established market of offshore software development with a rather high competition. Most high-skilled developers are concentrated in big and proven outsource software development companies. High competition makes them providing high level of skills and expertise. More likely that you will find the best developers on the market if hiring offshore software developers.
  • Effectiveness and fast results. Outsource software developers deal with many customers, many projects and many technologies. So they can provide a qualified analysis of your project and suggest a better solution or even share an original idea of its implementation. And any outsource company will be interested to finish your project as faster as possible, because swiftness is one of the factors of its profitability.
  • Quality control and confidentiality. Since quality and confidentiality are the major risks in offshore software development process, offshore outsourcing companies dedicate much attention to these aspects. They know about customers’ concern and provide the best quality and confidentiality control methods. Additional quality control factor – reputation. All outsource companies are interested in a long-term cooperation or at least in a positive feedback and recommendations.
  • Sharing the risks. Software development process involves some risks. Outsource software developers are specialists in this area and posses a better risk-management approaches. They will share the burden of risk in software development and suchwise optimize your major business risk portfolio.
  • Cost saving. You save on costs of development since labor rates offshore often are highly competitive. You save on recruitment, retention, company overhead costs as they are not involved when it comes to outsourcing. Add here training expenses, hardware and facilities costs. Outsource developers already have all needed equipment and resources. Besides you don’t have to compensate idles and outages if you have your inhouse team.

Disadvantages

software development outsourcingIt would be fair to mention about disadvantage of offshore software development, since you all know that it is quite a challenge to invest money into a “dark horse”. Yes, you will be at greater risk if you are trying to hire the cheapest company on the market. When choosing an outsourcing company even offshore you should keep in mind that you are going to hire a dedicated team of professionals who value their time and expertise. Quality, effectiveness and expertise are the major benefits which come with outsource software developers.

Another concern is if offshore software developers are motivated enough. We can easily imagine the situation when you set a task to a software developer and go back to your main business. And now when a dead-line comes nothing is ready. That’s a stereotype: since it is a specialized software development company you can leave it to chance.  A client and a developer are a part of the same team. If a client stays out of the process, the result may not be exactly what he was expecting. Refer to agile software development methodology to learn more.

Communication skills, confidentiality control, legal issues are also considered to be sensitive disadvantages.  However the major risk of losing control over the project or confidential data lose are often arise when informal agreements with a developer take place. An official contract and nondisclosure agreement can be at least a legal guarantee for a client. During initial negotiations you will assess communication skills of your developers and discuss all delicate moments of the cooperation process at least to hear the methods and approaches offered by a prospective developer.

Conclusion

When considering if to go with offshore software development we may surely conclude that the last word will always be for the customer. But if you are still not sure having read all mentioned advantages and disadvantages, just look at what market says. And it shows a steady trend of growing economy involved in offshore software development. It’s not a notion, it is a reality of today’s digitalized and  informationalized society.

Offshore Outsourcing Risk Management

When you are looking for the way how to cut costs for your software development project but still keep its quality, most likely you will think of offshore outsourcing. You will quickly find all the advantages of such a model. But less frequently one can talk about some risks accompanying this initiative.

Let’s see what risks a customer can face when it comes to offshore software development outsourcing and how to manage those risks. But first of all we need to point out that there is no business without risks and in most cases we talk about reducing risks but not about completely avoiding them.

 

1. Competence risks

outsourcing competence risksThe very first question arises when you look for outsourcing is “who do I hire”. And when you start searching you see a good bunch of outsourcing companies providing their services. But first you should probably pay closer attention not to what they say about themselves but to what others say about their work. Look what clients they have already worked with, contact them and ask for the opinion. You may probably want to start with a small project as a touchstone. But don’t forget that software developers also see you for the first time and have their own set of risks. Make sure you both understand your goals and objectives. Try to be as clear as possible about what your project is and listen to their assessment and evaluation. You may consult with a third-party to make sure your outsource developers know what are talking about.

 

2. Communication risks

outsourcing communication risksFrom the first contact you will have an idea if developers understand you correctly at least on conversational level. Make sure that you both understand that you will communicate a lot since this you both want the project to be a success. The more you communicate the more exact result you receive. Discuss various methods of communications: email, phone, chat, video conference. Work out a communication schedule (especially useful if you are in different time zones). Discuss the way of keeping track of development progress so you could carry out your independent control.

You should always know your project manager to refer with any question or explanation. But don’t mind to directly communicate with developers. This will give them the feeling that the project is under control. At the same time this will give you a better idea about how it is going on and train yourself to make clear queries and instructions.

 

3. Performance risks

outsourcing performance risksThis risk may be combined from risks of competence and communication. If you reduce those risks performance risk will automatically be minimized. But anyways we need to highlight this once again: in many cases performance risk or a risk of project failure or delay is a bilateral fault. To reduce such a risk you need to negotiate with your vendor the project development schedule, deadlines, progress updates, development process methodology. Do it on the very first stage when discussing the project!

And never sacrifice the quality of the project in the name of an early completion. Set reasonable dates.

 

4. Knowledge/data transfer risks

outsourcing datatransfer riskIf you posses a security sensitive data or knowledge first of all make sure you do not share unreasonable amount of it. Make available to your developers only minimum necessary information. Always exchange confidential information directly with your outsourcing partner.

Before the onset of the project discuss the question of confidential information transfer and storage. A separate non-disclosure agreement or inbuilt contract clause will be a good way to protect your commercial secrets, unique knowledge or brand-new product information.

Don’t hesitate to make copies of all files, spreadsheets, documents, source code which is involved in the development process. It is wise to be safe in case of an occasional data loss.

Also make sure that you own copyright of the product or a piece of software. Just note in the contract that all legal titles of all works is transferred to you after the project is finished, paid or any other occasion.

 

5. Cost risks

risks-costsOne of the main reasons for a customer to refer to offshore outsourcing is cost advantages. And the main disappointment occurs when the final calculation brings a different than expected cost. To avoid such a situation you need to ensure that your partner development company offers a transparent costs calculation and doesn’t imply any hidden amounts. Set a clear calculation and payment scheme which could insure your both interests. It would be probably wise to agree of the final payment only upon the project completion or product delivery.

Be aware that in most cases you do not provide the final fixed cost in your outsourcing contract. You can only negotiate a method of calculation and total cost assumption.

 

Conclusion

We came across the most common risks which usually occur in case of offshore outsourcing of software development. Yet there could be many risks which were not mentioned since many of them have an individual character and can be described only on a case by case basis.

Like it was already said before both parties bare the risks. A development service provider as well as a client run their own businesses and are interested in the most favorable outcome. That’s why success of a project is a shared responsibility of customer and contractor. To minimize most risks they need to negotiate them and find the solution on how to reduce them.

Don’t put the risk factor on the scales when it comes to decide if you want to outsource. Every business project can be evaluated not by the number of risks it has but by the risk management methods implemented by the parties involved.

Your offshore outsourcing project will never fail if you implement a proper control, comprehensive coordination and close cooperation with your partner. You are in the same boat and both of you are interested in a productive business experience with a long-term perspective.

“Outsource – Inhouse” Software Development Model

Very often in order to reduce the risk of a project failure client company hire not just one team of developers but several teams. This way it secures itself in case one team will opt-out or won’t be able to cope with the requirements or simply go out of business.

Such an approach looks rather reasonable, especially if you are running a big project or if this is a subcontract. However customer faces several challenges when more than one outsource developer participates in the project: poor project management, insufficient communication, coordination gaps.

It is recommended to spend more time for searching and hire a single but more reliable developer. This will help to avoid a confusion of putting all those ends together from several performers. You will probably pay a bit higher than average rate but you will get confidence and reliability in return.

Still this is not the only way you can ensure your development process. You may consider crossbred model: Inhouse-Outsource. This model is advisable for complex, complicated, long-term projects. This model will allow reducing costs of keeping a big inhouse team still ensuring that you have your own specialists to pick your project up on any stage or take care of the most confidential parts.

Here is how major tasks can be allocated between inhouse and outsource teams.

Tasks for outsource developers

  • Main development process and delivering final product to an inhouse team.
  • Routine development assignments or specific parts of the project according to the specialization, expertise and experience.
  • Synchronizing a development process from a different time-zone to provide a continuity of the project.
  • Outsource team may share workflow with inhouse team when it is needed to meet the intermediate schedule or finish up delivery in time.

Tasks for inhouse team

  • Project management and quality control, responsibility to meet dead-lines and final product delivery.
  • Communication with the outsource developers and ensuring that they understand main project goals and requirements.
  • Taking care of a confident information, data sharing and monitoring compliance with intellectual property rights.
  • Initial testing and implementation of the product.
  • Updating outsource team on any changes or additional requirements.

Conclusion

The main advantage of this model is that a customer can efficiently allocate resources between inhouse and outsource developers. He also ensures risks of project failure in case if outsource developer will suddenly opt-out. He will still have specialists who know the ropes. After all, this is a more cost effective model (also see other advantages) comparing to the one where a customer takes all expenses and keeps an excessive inhouse development team.