Outsourcing risks: How to get code quality guarantees
Thanks to the spread of English language and a number of voice and text messaging tools available, the communication barrier between business owners and their offshore software development teams is less of a problem nowadays. But Quora and reddit are bursting with questions about risks associated with outsourcing IT services, in particular what code quality guarantees you get when outsourcing overseas. Let’s see into this.
How can you be sure that the code you will get from a mobile or web development outsourcing company is high-quality and reliable? You start with taking a look at:
- Their previous projects — a portfolio. A good indicator is a company having experience within a particular field, say application outsourcing services for transportation.
- Client reviews, preferably on Clutch.co or similar websites. You want to see their strengths and pros/cons mentioned by several reviewers to understand whether they are an effective team for web or application outsourcing.
- As a bonus, if you have some techies on board, you can take a look at the code they release to public via GitHub. While this is only a fraction of what a custom software development company can do, a code with clear comments and organized documentation is a good indicator of whether they’re meticulous and well-organized.
Finding the best outsourcing company for your project is not an easy task
If you’re satisfied after examining all of the above, you can proceed to actually communicating with reliable software outsourcing companies you’ve found and learning about:
An offshore outsourcing company should have Quality Assurance in place which means that during the development the product is systematically checked for any mistakes (bugs) or deviations from the technical requirements. This way they prevent mistakes on production.
QA specialists (testers) aren’t the only ones responsible for checking the quality of the code — all participants of the process need to make sure that the code they are returning is working smoothly and as expected. Additionally, QA process shouldn’t be reserved for the end of the project, it should be conducted regularly within the development cycle.
Quality control in the outsourcing company should be thorough
Reliable outsourcing partners will gladly familiarize you with their quality standards and won’t refuse to include quality requirements into the software development agreement. Thus outsourcing quality risk can be mitigated.
Okay, so the outsourcing company of your choice has awesome client reviews, background in your industry and quality assurance in place. Another one of potential risks of outsourcing is code quality. What requirements are typical on this stage?
There’re no questions about software code performing the functions specified in the technical requirements and being delivered on time but you’ve got to be ready for the software revealing hidden bugs when put in production:
- Maybe a particular device model is not handling the app correctly.
- A high load caused by a significant number of users reveals a need for a server-side fix.
- Or some other bug slips in.
Code without guarantees is a no go
What should you do? What rights do you have here? In general, the outsourcing agreement you sign should include statements specifying:
- Acceptance testing period after which the software is considered to be accepted. Usually 5-10 days. During this period of time you can thoroughly check a website or app and send a written notice to the outsourcing company indicating what is not working according to the specification and should be fixed on the developer’s expense.
- Software warranty period, a period during which the software should stay free of defects. Usually 120-180 days.
- That software delivered by the outsourcing company is free of viruses or any other malware.
Sometimes an outsourcing company is also requested to provide information on the recommended hardware.
A common fear preventing businesses from working with mobile or web development outsourcing company is that once they get their software and send the final payment developers won’t stay in touch and proceed to working on another project.
Reliable outsourcing company won’t leave you without any support services
While it is indeed crucial for an outsourcing company to have a steady flow of projects to cover its expenses, you can secure a project support by:
Concluding a separate software support agreement describing support services in great detail. This might be needed for complex web or mobile application outsourcing projects.
Of course, payment in this cases is negotiated based on mutual agreement between the parties. Providing support after the project is completed is a good practice. One of Stfalcon.com’s client mentions our support services in his Clutch.co review:
Even though our projects were not very big, stfalcon was very involved and committed to our success. After the projects are completed, they kept on giving us support as needed.
— Manager, LiveExpert.ru (Online Expert Advice Website)
Of course, even if everything mentioned above is in place but the development team fails to deliver the project on time, it is a huge disadvantage. That’s why when the technical documentation is ready and it is clear how much time it would take to develop your web-site or app from the ground up, the deadline is put into your outsourcing contract or addendum to it.
Time is money in outsourcing as well
It is also important to have provisions on:
- Delivering versions of the product on a regularly basis (usually once in two weeks).
- Terminating agreement in case you aren’t satisfied with the quality of work. In this case you will need to pay for the work that was actually performed by the offshore outsourcing company and receive all the code that was developed so far.
Learn why Ukraine is one of the best IT outsourcing countries.
All in all, to mitigate risks of outsourcing make sure you have discussed and properly documented:
- Deadlines and penalties for not delivering project on time
- Quality assurance process
- Project acceptance procedure
- Software warranty period
- Project support term
By including this aspects into your outsourcing agreement you will ensure that the project developed by the outsourcing company will be well-tested, have appropriate warranties and you will receive a support when needed.