Like what you're reading? Share it!
Follow us to stay up to date with our latest and greatest!

Do What You Do Best and Outsource The Rest. Outsourcing and In-house Software Development: Which Should You Choose, and When?

Deciding whether to outsource or build your product in-house is an important choice, and we are here to put forth what are some pros and cons of both Outsourcing and In-house development to help you make the best decision moving forward.

Before we dive in, it is necessary to remember that each of these approaches has advantages and disadvantages that are dependent on the specific situation, and as such it is impossible to say which one is better in a vacuum. 

The choice doesn’t have to be an either/or choice, and most times companies decide on a combination made up of in-house development supported by outsourcing partners, which we will discuss towards the end of the article.

Let’s start with in-house development.

In-house Software Development

Out of the two, it’s choosing to create everything internally that gives you the most control. It is not without certain trade-offs, however. With this approach, you will usually end up spending much more than you would have had otherwise. Time might also be a factor here — such projects take much longer to finish. We’ll dive into each of these specific points below.

1. On-site Availability & Direct Communication

Having your team in-house, of course, means that they can be literally in your office - be it physical or virtual. Times are changing, however, and the times of 9-5 in a downtown skyscraper might be gone forever. A survey of CFOs done by Gartner revealed that even back in 2020, 74% wanted to shift at least some of their employees to be permanently working remotely, and some companies went fully remote. 

If you did not switch to remote work, then yes, you will be able to contact your employees face to face, which is a big benefit. On the other hand, people are increasingly demanding to work from home forever. It could be that you will be forced to give up these benefits to keep your key experts.

With the lack of a need or even willingness to be in an office, the added benefit of on-site availability is diminished by a lot, and hiring globally becomes a much more attractive option.

2. Developing Company Culture 

A healthy and inclusive company culture is a prerequisite for building great products. If you hire engineers yourself, then you can pick them according to how they fit in with the company. This is not necessarily the case with the outsourcing approach, however it is very important to keep in mind that culture fit is a must when choosting the right outsourcing partner.

3. Additional Control

Your team, your rules. Here, you are in full control. If this is an aspect you simply cannot give up, then in-house development is your approach. Even though you can negotiate a multitude of aspects with vendors, the flexibility is of managing your in-house engineers is unparalleled.

An alternative would be of course to find a vendor whose engineers will only execute a specific task list; however, we strongly advise against this approach.

4. Increased Costs

Not only do you have to pay employees base salaries, but also increase their wages from time to time to maintain a status of an attractive employer. Being attractive costs. Currently, the average monthly salary of a software engineer in San Francisco, CA is $13,200, $10,400 in New York City, NY, ~$10,700 in Zurich, Switzerland~$6,650 in Oslo, Norway and ~$6,600 in Berlin, Germany

The monthly compensation is not the only expense. Did we mention extra benefits, holidays, sick leave, and taxes? In comparison, in Central & Eastern Europe, the total cost of employment tends to be less than a half of what you would pay in the US, Germany, Switzerland or Norway - without compromising on quality.

To make things worse, the employment process alone costs $4,000 on average and takes 24 days (for an average US company).

Your costs will not only be defined by money, but with time as well. Did you know that it takes on average 49 days to hire for a software engineering role, according to a LinkedIn study released in August 2021? That’s just under two months between the time you post a job opening to the time the person joins your team, and that’s just the average.

5. Limited Talent Availability 

High compensation is being determined by the scarcity of people who are qualified enough to work in IT. By hiring candidates yourself, you are inherently limiting yourself to people from your region or your country. Outsourcing companies, on the other hand, have experience with hiring internationally.

 

When should you decide on in-house development?

It is advisable you do that when the project in question is part of your core product, when you have a larger budget and runway, or if you don't have any particular project schedule. This will not be true in every case, however. Startups raising big financing rounds are one example. If you just received a significant investment, you want to get to work ASAP. You don’t want to waste time and money setting up the whole recruitment pipeline before working on new features since your time-to-market will be significantly slower.

With time, however, hiring your staff does pay off — you just have to be certain this will be something realized for years to come. You will also enjoy full control over all the possible aspects — something that you want when developing a key product.

Keep in mind that deciding on in-house development doesn’t eliminate the possibility of outsourcing some of the work to your technology partner. In the next sections, we will detail how a hybrid in-house / outsourced approach can give you the best of both worlds.

Outsourcing 

In the world of business, there is a saying: “do what you do best and outsource the rest.”

Outsourcing is the way for companies to focus on what they do best, and only on that. This is invaluable in the age of strong and ruthless competition where things are moving faster and are more risky than ever. As such, organizations need to adapt accordingly.

Before we discuss the pros and cons of outsourcing, there are three main types of outsourcing, and two models – “new outsourcing”, and “old outsourcing”. Let’s begin by categorizing different collaboration models by geography:

  • Onshore

    Same region, same time zones. It is best when you want the most control, and do not worry about costs. Generally, it is the most expensive option. 
    An example of this would be a US-based company working with a US-based outsourcing vendor.
  • Nearshore

    When a company from the Germany / Norway / Switzerland / UK outsources some of its development to Poland, we are talking about Nearshore outsourcing. The same time zone helps when coordinating work, there is a great culture fit, and it’s usually cheaper to have your work done in a neighboring country.
  • Offshore

    The cheapest of these options, which does not mean the worst, but you need to do your research well when choosing offshore partners.
    When choosing an offshore outsourcing partner, check where the company is from, as laws and regulations vary from place to place.

    It is a common practice to hire firms from Central Europe such as Poland
    since their laws and Data & Intellectual Property Protection regulations comply with the laws of the European Union, their developers have a European quality of education, and labor costs are lower than elsewhere in Europe.

1. Language & Culture Fit

A very important and often overlooked factor which needs to be taken into consideration when nearshoring or offshoring is the language fit - because if you aren’t able to communicate with your outsourcing partner, then how will you work towards a common goal?

Somewhat less critical but as important is the culture fit - where you and your outsourcing partner have a similar understanding of what your values are and what goals you are working towards and how you can work together to reach them.

2. Out with the old, in with the new

The “old outsourcing” model refers to situations when an outside company takes over a dire situation. Spaghetti code, huge technological debt, and other software development nightmares. A clear relationship cannot be established, which results in confusion. Both parties blame each other for any shortcomings, and a type of win/lose power struggle begins.   

The “new outsourcing” model is very different. The outsourcer is seen as an asset, and as a partner that generates value for the hiring party. The external company is held accountable for their work, though now, with a set of clear relations and responsibilities.

Both sides work to maintain a strong relationship for as long as it brings value. One can also notice the dynamic of a well integrated supply chain rather than a disjointed bulky one as it was in the past.

3. Cost-Effectiveness 

Yes, we did mention that “Onshore” is the most expensive option. It is still more cost-effective than having to hire and sustain teams of developers. Among IT companies, ~85% of them either agree or somewhat agree that outsourcing is an effective way to reduce costs.

One has to keep in mind that there are some additional costs to outsourcing. There is the cost of the transition, as it takes time and effort to hand over a project to the partner of choice.

There is also the cost of selecting a vendor even before the development starts. This can range anywhere between 1% to 10% of the total project budget; however, since the pandemic limited our ability to travel, don’t expect to spend as much as 10% of the deal.

4. Promoting Growth 

Getting market traction and growing rapidly is spectacular until you realize that you have to fulfill the additional needs of the new demand. How can you do it if you immediately have to scale up? Getting a big financing round is equally great, though a similar problem occurs.

How do I hire as many members on my engineering team without wasting time, without using up my runway too quickly, and while keeping my burn rate low? 

An outsourcing partner can address all three of these concerns, and more.

5. Commitment for as long as you want it to be 

When you have a deal with an outsourcing partner, you negotiate the length of the contract, which is, in general, more flexible than having people employed indefinitely. In the end, you can’t blame your employees to want to feel secure.

However, you can negotiate a fixed-length contract with an outsourcing company. Keep in mind that most outsourcing partners usually require a minimum commitment of 6 months at the beginning of the cooperation.

6. Increased Flexibility

Having to let go of your colleague can be tough. Occasionally, it has to be done, as your team needs to downscale. Luckily, however, there are no problems with downscaling a remote team of your partner as their team members generally move between projects. You just give the go-ahead, outsourcing companies do the rest. Nobody says you have to outsource the entirety of the work either, and it remains up to you to scale up and down as you see fit for your needs.

Keep in mind that most outsourcing partners will not downscale within a day or a week, and most of them have notice periods of around one month.

When should you decide on outsourcing?

When you recognize the need for a project that is not something that is part of your core product, you could always consider going for an outside vendor. Companies have historically always hired contractors for some work. Moreover, companies have always formed long-term relationships with companies for shared access to resources – buildings, technologies, or people. IT outsourcing is not much different. Here, you are paying for access to the resources of expertise and development.

However, things are rarely 100% outsourced or developed 100% in-house, and this is where the hybrid approach comes into play.

Hybrid Approach - The Best Of Both Worlds

Of course, there is always a gray zone of possibilities. If you want to combine the two approaches, there are several ways to do that. By choosing a hybrid approach, you can emphasize the benefits you want to be highlighted, and round out the edges.

We will mention two ways of hybrid outsourcing:

  • Extended Delivery Centers
  • Team Extension

1. Extended Delivery Centers

Using this approach, you will have a remote group of experts acting as an extension of your existing team. The talent working with your employees can be from the same region as your company, or can be from a different continent. It’s all up to you.

In a nutshell, your outsourcing partner will work with you to build processes, templates and governance models so that you can benefit from seamless delivery of service.

2. Team Extension 

Finding the right experts quickly is not the easiest. That’s why, if you want to have managerial control (oversight, measuring performance, correcting any deficiencies, etc) over the engineering team and still focus on your core product & business direction entirely, you would choose a standard team extension.

In short, your outsourcing partner extends your existing team with specific skillsets for you to work with, as a way of cutting the time necessary to get up and running, or to quickly scale up and down as needed.

Conclusion 

In no way is choosing a vendor an easy task. There are many aspects to consider, which is why the process can take months. Luckily, however, there are numerous models and ways of conducting such a process, which is why you should always be able to find a cooperation model to fit your needs.

Categories:
Check Out Our Latest Podcast Episode

Related articles

© 2021 ITMAGINATION. All Rights Reserved. Privacy Policy