How to choose the best IT outsourcing Provider? - Part 1 by Yulia Chekhlova is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Based on a work at ISS Art, edited and published by Resiport. Permissions beyond the scope of this license may be available at Resiport. Any views expressed in this article are those of the author and may not necessarily reflect the view of Resiport.
Sometimes outsourcing a particular project makes the most sense. After doing your initial project research, you may realize you do not possess the necessary skills for using available tools to achieve the result needed, the time demands are too great or, perhaps, it is much more cost efficient to use an outside Provider to complete the development project.
Whatever your reason or reasons are for outsourcing, it is still important to properly manage the project, select the right Provider for the job and ensure all of the key elements are addressed. The right Provider can make your life much easier, and a poor Provider, on a contrary, can make your life extremely difficult, so be sure to cover all the details upfront.
Outsourcing software development
When it comes to outsourcing software development projects, there are several key elements you will want to ensure are discussed and covered with your chosen Provider. Making sure you and your developer are on the same page and have a clear set of expectations will set the stage for a successful collaboration.
Eight key elements to consider when choosing an outsourcing Provider
1. Ensure the Provider includes everything needed in the project estimate proposal
Important Components of the Development Process include:
- Analysis or Specification
- Architecture & Design
- Program Code Development
- Code Documenting
- Software Test Results
- Deployment of Code on the Customer’s Server
If some of these points are missing, we recommend clarifying with the Provider who will be responsible for them. This way you will see clearly what to expect from your Provider beforehand.
2. Don’t underestimate the importance of technical specification creation if the Provider recommends it
Creating comprehensive technical specifications for your project can significantly reduce costs over the long-term. Additionally, it helps the developer clearly understand exactly what is required and what is not required to be included with the final version of software that is developed.
Not only will technical specifications prevent the Provider from spending unnecessary time of adding features or functions not required, it also helps reduce errors. Several years ago, the National Institute of Standards and Technology published a report stating software errors cost the United States economy $59.5 billion each year. For an individual project, it is easy to imagine a little confusion or missing an important element in the development process could cause a project to run significantly over budget.
It is impossible to account for all errors, but making sure you have clear specifications from the beginning will avoid errors and avoid dollars spent on unnecessary developer efforts.
So, when a Provider recommends you starting from technical specification creation, do not think that he is willing to make you spend more money. Contrary to that, he may be willing to prevent you from spending extra sums in case any misunderstandings on the project requirements arise.
3. Make sure the Provider documents the code
Extreme clarity in understanding a developer’s code is important when making adjustments or fixing errors later on down the road. Without a clear understanding of exactly what the original developer was thinking and how they were thinking it can result in confusion, wasted time in deciphering exactly what was already done and bugs.
Be sure to have the Provider create comprehensive and straightforward documentation that will give clear insight to others who may have to work with the code later. It should be much more than just a few notes here and there; it should be a full, detailed and lengthy explanation of their coding process.
4. Ensure that assets used by the Provider don’t violate anyone’s intellectual property rights
Infringing on intellectual property rights can potentially be a very serious problem and extremely costly, especially in the realm software used or sold for commercial purposes. These situations can sometimes lead to civil or even criminal proceedings with severe penalties.
How to prevent this?
If, instead of developing the whole project from scratch, your Provider recommends purchasing the source code of an already existing app and reskinning it the way that it will constitute a new unique project, it is important to know how to avoid possible legal troubles.
- First, the code should be purchased under completely legal circumstances and from a reliable vendor.
- Second, you need to check what the purchasing agreement actually allows you to do with the code – modify it and use it for your own needs, or distribute the modified version further.
- Third, you have to make sure that you customize the purchased material enough for it to be considered a new product.
Most of the software projects require not only clean programming code creation, but also beautiful design. Therefore, it is important to initially make sure the Provider is not going to use other designers’ works. In case he is going to purchase images, ask him to show you payment documents. If he uses free images, you should make sure their usage does not violate ownership rights.
Together with that, you should consider whether the software will be competitively sensitive. If you feel that your Provider can potentially develop something similar for others in future, you might want to obtain IP ownership.
Make sure these points are reflected in the services agreement you are going to sign. Therefore, review the contract sent to you by Provider carefully, and ask your lawyer for help if needed.
5. Check if the Provider is willing to let you test the product yourself
Have you ever heard the phrase, “trust but verify”? This is an absolute rule that must be followed when outsourcing software development. There is nothing wrong with building trust in the Provider over time, but it is essential to test and verify the results yourself.
Not only will this give you peace of mind and ensure the Provider has completed the project properly, it will also give you an opportunity to test the software from a consumer’s point of view. You may find something the developer missed, an honest mistake or simply a portion of the software that needs a little tweaking.
6. Make sure the Provider will give you an opportunity to stay involved in the process
Staying involved in the development process is usually a good idea. It will give you an opportunity to have a better understanding of the step-by-step process, how things were done and also monitor the progress and time spent on the project.
· Project Management systems
There are several excellent project management systems, which lend themselves to software development projects. JIRA and Redmine are among them.
· Time Tracking Alternatives
7. Ask the Provider if he will give you the necessary assistance after the project release
After the final software product is delivered by your Provider, you might need further assistance with it. How to use it, how to work with it?
If you feel something more informal is sufficient, then perhaps a Skype call or a web meeting with your Provider will be enough. If the software is more complex, then you may want to ask for a user manual, video or detailed instructions to be provided at the time of final delivery.
The Provider’s readiness to give you the necessary assistance upon the project completion is important, so if he is ready to provide you with it, this will be an additional advantage.
8. Ensure the provider is willing to communicate with you during the development process
Clear and consistent communication solves many issues and avoids many problems before they happen. Be sure to communicate with everyone involved in the development process often and do not be afraid to give reminders about key issues even if they have been discussed before.
Verifying a Providers’ credibility
Local Software Developers
Dealing with a local Provider does have some advantages, as it allows you face-to-face interaction and the ability to visit their physical office location. There are times you can get a gut feeling or sense about someone and their company in person that is difficult to do via email, Skype or other online communication sources.
Additionally, you may be able to find local clients they have done business with in the past, who can give you an opinion on the overall value of the Provider’s services and tell about the details of their own experience.
While dealing with a local Provider does add an element of easy research, you still need to search the internet for comments, reviews and information about the Provider’s business. They may be local to you, but chances are they have done work nationally or even internationally, with some type of rating and feedback given on third-party websites.
Offshore Software Developers
There is no reason to shy away from using offshore developers, even for large projects. Utilizing offshore developers can result in finding excellent talent and provide significant cost savings. Additionally, if you spend a little time doing some research, any established developer will have a trail of experience and customer reviews in one form or another online.
There are many possible sources of information on the web about a Provider you are thinking about hiring. The IAOP, for example, publishes a report every year rating the top one hundred outsourcing Providers. This report can be an excellent source for finding a service that will deliver excellent results, at a fair price and with minimum hassles.
You can also reach out to independent Research and Reviews websites, such as Clutch
Another promising IT outsourcing portal is Resiport which is currently launched in Beta.
Additional Sources of Information on Providers are online Freelance marketplaces. To name a few:
Often Providers already have their profiles on the above websites. These profiles may contain valuable information and reviews and about Providers’ past performance and quality of service.
Additionally, you can utilize social media websites such as Facebook, Google+ and LinkedIn to view Providers’ profiles, comments and posts. You may also be able to find information through specialized forums that relate directly or indirectly to an outsourcing Provider’s services.
If done properly, outsourcing software development projects can be a dynamic tool to reduce costs, save time and add experience to your operation. If you commit to properly managing the process and ultimately find a few outsourcing Providers you can trust, then you will be well on your way to fully taking advantage of outsourcing capabilities.
Have your experiences with outsourcing been good or bad? We would love to hear about your experiences and advice for achieving the best results when outsourcing software development. Feel free to share your thoughts in comments!