Things to consider before outsourcing

Recently I had the advantage of exploring a side of programming that is becoming all the more popular in the business world of software development, Outsourcing.

Now at first outsourcing may sound like a great idea. Pay others to develop on your product without having to worry about hiring temporary employees. However, as easy as this sounds, there are some things you need to consider before you attempt to outsource your product.

  1. Learning curves: Unfortunately, your outsourcer is going to be at a huge disadvantage, they have no experience with your code. It is harder for an outsourcer to reverse engineer your software enough to program new features, mainly because they lack the ability to keep in constant contact with you. It is easier for a temporary employee to learn the code because they have access to your best resource, your developers. This issue is even further complicated if you are using resources outside of your country. It is hard for an outsourced developer to ask questions while your development team sleeps.
  2. Language Barriers: When using an outsourcer outside of your country, communication may not only be affected by time differences, but language barriers. Your outsourcer may not be all too familiar with your language. Items may get lost in translation. This becomes a large issue when you discover the outsourced developer’s interpretation of your design or product requirement document is completely different from the wanted feature.
  3. Proper Documentation: Most outsourcers have been trained to program an item specifically to the requirements document. Your documentation should cover every detail to help the outsourcer better understand the features you want. This also extends into the realm of your current software documentation. The more documentation you have about your existing code, the easier it will be for an outsourcer to develop and implement his/her assigned tasks.
  4. Coding Standards: Are often ignored by an outsourcer. Most outsourced developers are required to program as quickly and efficiently as possible. This can lead to your software coding standards to be overlooked. Even though the functionality has been added to the software, this doesn’t mean that the functionality can be easily extended, or even maintained well.
  5. Loyalty: One thing that can’t be purchased is loyalty. To an outsourcer, you are a client. Next week their will be another client. Their loyalty is with the outsourcing company, not the client. Keep this in mind because loyal employees will be more motivated to make the software better, where an outsourcer is just trying to get the job done.
  6. Proper Training: Make sure you have the time to properly train the outsourcer, not just in the code, but on the actual software. It will ease development time if the developer knows where certain functionality is in the UI so that it can easily be traced in the code. Without proper training, you are more likely to encounter features that are not fully implemented because the developer didn’t know about another part of the software.
  7. Development Environment: Outsourcers may not use the same editing tools and operating systems that you develop with.  This becomes especially important when an outsourcer uses Windows and your team uses Linux.  Line ending differences can cause merge problems in source control systems.  Make sure you can have your outsourcer use the same environments that you develop on.

Even though there can be difficulties in using outsourcers, I don’t feel it is a bad thing. Using an outsourcer can provide an easy gateway to get the help you need fast, especially when its difficult to find unemployed programmers. But, also think, is it better to delay your release to make sure everything is right and as bug free as possible, or get the product out the door by using developers unfamiliar with your software.

4 thoughts on “Things to consider before outsourcing

  1. Outsourcing application development is not a starting point for outsourcing this is what I would term a bottleneck service. If you need to go outside – in order to do this properly for sure you need to develop over time with a supplier a relationship where he/she performs well (code quality etc.) and you provide valued work.

    Better to start outsourcing with commodity stuff perhaps with bug cracking or more usually service desk type of services then more onto development if it works well.

    cheers

    Roy

    I do write on this stuff at my forum http://www.bizface.co.uk

  2. Before you consider to outsource your business, you must immerse yourself into the country of choice to be able to study and observe the culture of the individuals, and the working environment of the country to be able to understand fully the needs and expectations of your future employees. This is important for them to join the organization you are planning to put up and to be able to gauge the potential of the employees you wish to be part of your organization. Business owners must also consider not only the benefits they would be getting from outsourcing but also the benefits they would soon provide to their employees. It’s important for employers to give back a reasonable compensation to the kind of service the employees provide to the business and their respective clients. Location is also important to any given business be it a conventional or an outsourced one. It provides the starting point of any business to click. Proper training should also be considered since knowledge of your given talent pool may not be enough for them to provide excellent service but enhance their potential in your field of business

Leave a Reply