When it comes to select a company to work for, specifically in software development or software testing, this is one of the most asked questions:

Which is better: Outsourcing or Product company?

To be honest, I don’t think it’s a good question.

What do you mean when you say “better”? Better for what?

When you say “outsourcing”, are you referring to big outsourcing companies, long-established or a new/small one? When you say “product company”, are you referring to a start-up company that one of your friends has just planned to build on the phone yesterday or a product from Google or Tesla?

Ok, I’m exaggerating a little bit but you got the point right?

…but it’s still a valid question.

This is especially true when you’re new in testing and you hear rumors like “Outsourcing sucks. People work like crazy there”, “product company is dead boring. You won’t learn anything new there”, “product company pays better”, etc. You get confused and you need to make sure you make the right choice.

In this post today, I’ll share with you some pros and cons of outsourcing and product company so you can have more information to make your decision.

Oh, before I start, there are some important points to note:

  • Even though I used to work for both outsourcing and product company, it doesn’t mean my opinion in this post speaks for all outsourcing or product companies out there.
  • My opinion based on my own experience and it may not work for you.

Alright, let’s start.

What is an outsourcing company?

In a nutshell, it’s a company that helps build software for another company. They receive requirements from client, sign contracts, do the work, deliver and done. Projects can be short or long-term, one-time or recurring. Each company may differ a little bit but in general, the model is the same.

Outsourcing companies build the product but they don’t own it.

What about product company?

It’s a company that builds its own product. They may outsource some of their work but basically they have in-house team to build their own products. The product is for internal use or they can sell it to customers.

More importantly, the product company owns the products.

But that’s the business side. Let’s take a little bit deeper look to see what else they differ from each other.

Let’s talk about project variety

Generally, outsourcing company business depends on the projects they have.

More projects, more money.

So if you’re in outsourcing companies (and they are doing good business, of course :D), you’ll have a lot of chance to work on various projects. It means that you’ll have chance to work with various customers, technologies, domain knowledge. It also means that you’ll learn and diversify your skills faster.

For example: If you join an outsourcing testing company, you’ll have a chance to test projects from Web, Mobile, API, Devices, etc. You’ll have a chance to work from manual to automation projects. If a project is gone, you can be moved to another project.

It’s like you were enrolled in a martial art school and you’re taught everything from Judo, Karate, Taekwondo to Vovinam. That’s pretty cool right 😀

In the product company, it’s not that they don’t have projects. It’s just that product companies can’t be compared to outsourcing companies in terms of project variety.

Having many projects to work on is a BIG plus especially for new testers whose number one goal should be maximizing their learnings and improving their skills.

With that said, if you’re new and your goal is to learn as much as possible and you’re also comfortable moving around projects, outsourcing may be the right choice.

Clients vs users

In outsourcing projects, understanding end-user is not enough. You’ll have to understand and satisfy your client’s requirements. To some extent, making the client happy is the priority of your work.

Why? Because clients are the ones paying your company money (so your company can pay you :D).

However, dealing with clients has never been an easy job.

There are two types of clients in outsourcing projects: 1) High demanding and 2) Very very high demanding.

If you don’t feel your client high-demanding, there would be something wrong…or you probably get used to it.

So, be ready to go extra miles to make your clients happy.

That sounds scary but believe me, it’s not necessarily the bad thing if you know that dealing with clients and making them happy is one of the most important skills you could have.

In the product company, more often you don’t have to deal with client things. Your number one priority is now your product and your users.

Don’t get me wrong. I’m not saying dealing with users in product company is easier than clients in outsourcing company. It’s just that not dealing with clients at work is a huge relief. Removing unnecessary stress with client may be a smart move.

With that said, if you don’t mind dealing with client or you want to improve customer satisfaction skills, outsourcing may be the right fit for you. If you don’t want to deal with clients, product company may be for you.

What about the rumor: outsourcing work is insecure?

Unfortunately, I think it’s both true and false

I’ll explain.

Remember the nature of the outsourcing model? You have work because you have projects from clients. If for some (unknown) reasons clients suddenly discontinue the projects, you’re done. If you’re good and lucky, you may be moved to another project, otherwise, you’re done too.

Sure, bad things can happen anytime to any business model but in my opinion, uncertainty is higher in the outsourcing model. Client, in general, can cancel the project at any time. It’s up to them to tell you/your company in advance or not.

In the product company, uncertainty is there but it’s predictable. It’s unlikely that your company made a lot of sales for years and suddenly all your customers disappeared. The business may be declining but more often you can foresee or get updated. It’s not something happening overnight.

That being said, if you want a more stable and long-term job with less insecure business, product company sounds like the right choice.

What about salary, career path?

Yeah, here’s come the main course. How can I miss that “elephant” in this post right?

Which company will pay you better? Which company has rooms for you to grow?

Unfortunately, there’s no one clear answer to that.

It entirely depends on what outsourcing or product company you’re in. You can always discuss that in your interviews. Let’s see how far you can go.

Related read: QA tester career paths, which one to choose?


In the product company, all departments or teams are on the same boat. Of course, they have their own goals but they also share one same goal: build successful products.

It means that in product company you’re involved in the entire product lifecycle from planning, developing, release and maintenance. It means you have a big picture of the product you’re working on. You know what you’re heading to or what problems you have.

Basically, you have all the transparency or the support you need for your work. I’m not saying that you don’t have any transparency or support in outsourcing company, it’s just that it’s not the same level as product company may provide.

Outsourcing company is notorious for lack of visibility/transparency from clients.

Many a time, you have no idea or vague idea about product roadmap or phases. Many a time, you have limited access to the product’s document. Many a time, you have no idea why a decision made.

It’s like driving on the new road and you have no idea what the other end is. You just keep driving….as being told.

Can you reach the destination? Yes.

Is it fun? No

Even though that’s not a big deal as a tester, lacking the visibility/transparency makes you feel like you’re not part of the game.

But before blaming anyone, please understand that it’s the nature of outsourcing/off-shore model. If you look from the client’s perspective, you’ll find that the client is also struggling with the visibility/control of the project. They have no idea what exactly you’re doing “offshore” or who you are because you are “far away”, so in order to play safe, they increase the control.

Of course, the relationship will be improved over time and things will be alright but don’t be surprised if it’s not like what you imagine.


This will be a little bit vague if you’re new in testing. However, if you’re in testing for a while, you should see this point.

As I share above, the outsourcing companies build product but they don’t own it.

It’s a fact. Like it or not.

No matter how much effort you put in it to test the product when you finish the project, it’s done. You know it’s been released to public but it’s very likely you don’t know if a product is a success or not. You don’t know if end-users like it or not. You don’t know how many sales your product made. The funny part is that you don’t even have time to worry about that much because you’re busy with your new projects.

After spending several projects, your focus is now to make the professional job, get it done and move forward.

In the product company, you can “feel” the ownership better.

Of course, we all know we don’t own the product, the company owns it but you should feel that.

To some extent, the product that you’re working on is like your baby. If you really care about it, you’ll try your best and make the best for your baby.

Of course, in order to feel that “ownership”, you need to be involved in its whole life cycle. Also, needless to say, the success of your product will affect your paycheck. Don’t overlook this, this is closer than you think.

When you feel like you own the product, you’re willing to work overtime. You’re willing to give ideas/suggestions to improve your product. You’re willing to stand up and fight for your defects. You do that because you care about your product.

In outsourcing, you do your best to make a good enough product.

In product company, you do your best to make a great product.

I think the difference lies in the ownership attitude.

Alright, so…which one is better: outsourcing or product company?

Ok here’s my general suggestion:

  • If you’re a new tester and your goal is to improve your testing skills and maximize your learning, go with outsourcing.
  • If you want to stick with a product and become an expert in a domain, go with product company.

What makes a good company good is not because they do outsourcing or product. It’s more about the people, the culture and more importantly, it fits your goal. If you don’t know what you want or what you want to become in future, joining either outsourcing or product company doesn’t make any difference.

However, you can also find out if a company fit for you or not by doing your due diligence or verifying by yourself. Here are some ideas:

  • Check out the company website to see what type of projects, products they have.
  • Ask them good questions in the interview to have an insight into products (technology, product cycle, phases, etc) or projects (clients, team, type of projects, etc).
  • See how’s their employees, your friends or people talk about the company.

Final thoughts

As professional tester, there’s only one thing you should really care about. It’s the product under test. When you understand that, you don’t have to worry if it’s outsourcing or in-house product. Your only focus now is to do your best to test the product thoroughly and make it become a successful product.

…and the rest is noise.

So, which one you prefer, product or outsourcing company? Let me know by comment below.