IT Outsourcing: Expectations vs Reality
Updated: Mar 14
In the past threee decades, IT outsourcing has been on the rise but will it ever be stopped?
Not really. We understand that outsourcing might not be for everyone and we know some people have strongly negative views on outsourcing. However, by taking a quick look at the statistics it’s clear that outsourcing is here to stay and it tends to grow in the next five years.
“The important thing about outsourcing or global sourcing is that it becomes a very powerful tool to leverage talent, improve productivity and reduce work cycles.”
– Azim Premji, Chairman of Wipro Limited.
Outsourcing is an essential part of modern business, and not only for IT teams. When I get in touch with potential clients, one of the most common reasons for them to see IT outsourcing negatively is a gap between expectation and reality that they don’t see how to overcome.
Why Companies #Outsource
According to a post by Arizona State University
“[...] it’s a common practice among some companies to hire a third party overseas or adjacent countries to perform services and create goods that were once achieved in-house by the company’s own staff, but because of X or Y reasons they prefer, or need, external help for the time being. Usually, it happens because of shortage of labor or because of cost-related reasons, but whatever the reason, the goal tends to be the same: to produce high-quality goods through skills the company itself usually finds hard to develop, for one reason or another.[...]”
And the main reasons are:
Reduce and control costs of operation (usually the top reason)
Improve the company’s focus.
Liberate inner sources for new purposes.
Increase efficiency for time-consuming functions that the company may lack resources for.
Use external resources as much as possible.
Sharing risks with a partner firm.
With a seemingly evergreen pool of freelancers and agencies, clean code promises and the long benefit lists, many entrepreneurs, CTOs and #startup founders fall victim to the illusion of outsourcing by a “dirt cheap” price or a sweet talking freelancer who specializes in every skill you are looking for.
When business grows or when the execution needs specific expertise and technical knowledge, it can be difficult to juggle everything in-house. Outsourcing allows you to keep the time and resources necessary for focusing on your own expertise and other aspects of the company, while still providing customers with high quality service they expect from a top startup.
1. Getting a team of top notch senior developers to skyrocket the product
Reality: While it is possible to ask for resumes as you negotiate the contract terms with your outsourcing contractor to make sure you have only experienced senior developers in every position of your project, the reality is that a team with mixed experience levels more often than not, will perform significantly better.
Of course, you will get your product built either way but it will probably not compare with having a team of experienced developers and junior developers together because the more experienced ones are much less impressed or excited by doing the same tasks they have done multiple times before, tasks stop being as challenging as they were in the beginning of their careers, while the junior ones are looking forward with excitement to execute the same tasks, learn and grow in their own careers.
Juniors and seniors end up being complementary to each other, as the juniors will bring excitement, new ideas and creativity and the seniors will make sure the quality levels and the details are in place.
2. Clean code, easy to maintain and easy to extend
These words have become popular in outsourcing agencies offers and freelancing proposals of all kinds. They sound too good to be true and that’s exactly what they are. A myth.
Reality: Any codebase of a significant size can’t continuously remain self descriptive even if the names used for the files and functions and variables in the source code are carefully picked, by looking at the source code alone it is hard to understand the order of how things connect and communicate and interact with each other.
Many claim that they write clean code, easy to maintain which can be the case for small pieces or very initial stages, the truth is that it is hard to keep it clean and easy to maintain as soon as the project reaches a specific size, or lasts for a longer period of time.
HOW TO MAKE SURE YOUR CODE BASE IS CLEAN AND EASY TO MAINTAIN
The most direct approach to that is to get an independent party to review the code base every now and then and ask for a review, comments or tests.
A simpler and more subtle way of doing the same things is by hiring a temporary developer or team to handle sample tasks and get feedback and impression how easy it is to onboard the new developers.
DOCUMENTATION IS THE REAL CLEAN CODE PATH
The way to onboard new developers smoothly and to increase the efficiency of communication between managers and the development team is to have documentation that connects high level business terms, domains, and all the details not to be confused with the initial documentation provided by the business analyst, keep adding links and references to the areas to source code files names.
This documentation is not the initial one provided by business analysts to kickstart the project. It could be, as long as it is consistently and regularly updated by the tech team, even after the product has been built.
3. A motivated team will overcome low budget challenges
Assume less about others' passion and learn clearly what quality and level of service you can get within your budget range, response time, technical advancement, team size, team availability, automated testing and deployment, experience in the staff. This is a harsh truth that will spare you a handful of disappointments in teamwork.
We know as a founder, you are passionate about your idea, your project, your app. The reality is that not every contractor or freelancer will resonate with it enough to do that extra mile for love. And it is ok. It doesn’t mean they will not do their best work and not commit to the quality and delivery with professionalism, it just means maybe expecting that extra mile out of passion might be far-fetched. So keep your budget and expectations as realistic as possible.
4. The contractor will provide a magically understandable report with all the info you need
Finding communication clarity and balance can make or break your partnership with any contractor. Take some time to write down all the progress, KPIs, numbers, milestones that you’d like to track regularly and share it with your contractor during the negotiation process. It will allow them to come up with solutions to meet those expectations from the beginning and the alignment will be much more productive for both parties.
It is also proven to be very efficient to provide not just the requirements but also the specific type and format of the reports, frequency they are looking for, video meetings, standup meetings, and etc. After agreeing upon these communication and reporting details, take one step further and add it to the contract. The point behind the contract is not only to be about financial agreements but also to clarify communication style and expectations of both parties and that is key for a smooth and successful long term collaboration.
A word of advice
If you're considering to outsource a project or business process, keep in mind that although reducing costs and getting skill sets that may not be available locally are great benefits, working with contractors is a partnership and like any other partnership, it will need clear communication, expectations and shared goals to succeed.
In case you are already working with an outsourcing team and you aren't satisfied with the services, before quitting, we encourage you to have a realignment discussion and see how it is possible to move forward before making a decision.
Lastly, if you'd like to get a non-obligation free estimation to your project from our team, click here.