When thinking about outsourcing software development, you should first examine your expected ROI for the project....
If you expect to get top quality work for pennies on the dollar, you are fooling yourself. Prices for outsourced developers can be lower, especially when contracting outside the U.S.; but the common advice "you get what you pay for" applies here as well. Chasing rock-bottom prices when outsourcing software development can lead to missed deadlines, bad code quality and a lot of wasted time and effort.
You can think of off-shore pricing in the same way as in the U.S. There is an average wage for a decent developer. Paying more than that wage will probably get a more skilled person, while paying less will get you someone more junior. Better people produce a better product in less time and overseas rates work the same way.
The culture of the service provider also is an important consideration. Various cultures of the world value different things and these differences can make effective communication difficult.
Any time you describe a feature or function you want in your application, you are (possibly unknowingly) making assumptions. When outsourcing software development, you assume the person you are explaining things to will be able to clarify points they don't understand. You also assume they will point out flaws in the design they can see and you might have missed. You further assume they will do what you ask and not what they think is best. These unconscious assumptions can get you into trouble and there's no way to avoid them because you're simply not aware of them.
If you work with a culture similar to your own, your assumptions and those of the service provider will more closely match, which can reduce the possibility of encountering bumps in the road.
For the first project, it is best to outsource only applications that streamline back-end business processes. Try and keep the embodiment of your strategic advantage in-house. This is not always possible -- especially for small companies with no internal development staff -- but in any case, intellectual property can be difficult and expensive to defend in foreign countries. If you need to outsource your "secret sauce," do so after getting to know your outsourcing provider.
This is not to say you can't outsource your main application; just not the key parts. Well-designed applications are built using many interchangeable pieces. The pieces that entail your strategic advantage should be developed in-house or by a trusted outsourcing firm. Those that provide supporting features can be outsourced successfully, then integrated into the whole.
CIOs put jobs on the line
Security costs of outsourcing software development
Dig Deeper on Business process modeling and design
Related Q&A from Brad Irby
Can microservices help modernize legacy applications? An expert lists ways microservices help developers break the monolith into functional services. Continue Reading
Making data available from the Web via an API may be simpler than you think. Brad Irby shows you how to query data directly from an API with Excel. Continue Reading
When designing an application, developers must decide how to implement data persistence. Brad Irby explains which data persistence pattern to ... Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.