Outsourcing guide for software development and projects

Outsourcing of IT. A word glorified and hated, and yet misunderstood.

Outsourcing done correctly, can be an extremely positive experience. It can reduce time to market, cut costs, improve quality and be a huge competitive advantage in the industry.

Outsourcing done wrong, can be a disaster. It becomes expensive, the product is shit and it feels like the people you outsource to does not understand you.

In this page, we will talk outsourcing.

The myths of outsourcing: a reality check

Back in the nineties and start of the new century outsourcing was a very positive word. It meant cheap costs and fast development.

Today it’s a bit different. Whenever I talk to executives about outsourcing, a common response is: “Outsourcing ends up being more expensive and less effective than in-house development!”.

Yet, that is not always the truth. I also hear the opposite story: How outsourcing cut costs, scaled the work force and made the impossible possible.

There is a lot of opinions, myths and bad experiences with outsourcing.

The big problem with outsourcing is that very few actually have tried it, and many who had, did under very bad circumstances.

The myths of outsourcing: a reality check.

Let’s start with the obvious most people have realised by now:

Outsourcing is not a golden bullet. Yes, you can find developers who costs 200 USD pr month in the Philippines or India, but that does not mean you should.

The performance of outsourcing ultimately comes down to a lot of the same parameters as your internal IT organisation:

  • How do you treat the employees?
  • Did you hire the right people?
  • Are tasks defined in a way that matches expectations

Myth #1: Outsourcers don’t know how to say “no”

I’ve worked with people from India, Philippines, Bangladesh, China and most low-salary countries, which is famous for the “doesn’t say no”-attitude.

This myth is simply – a myth. It comes down to the fact you don’t understand the employee.

Consider what is really happening: A young man in India just got a new job. He knows that if he performs, he will become a manager within 5 years and will be able to support his family. He lives in a culture where saying no is a bad thing. He has learned he is supposed to say yes:

Of course he will say “yes!”, even if the answer is no. Because from his world point, saying no means he will either be fired, will lose money or simply risk a future promotion.

However, if you spend time with the employee, and makes him feel safe and reward him for being honest – you will never have this problem… Which brings me to the next myth:

Myth #2: Outsourcers are not really a part of the team

I’ve previously lived in the Philippines. I have worked on the same offices, big companies outsource too.

The typical work flow is:

  1. A task is created in a task management system such as Jira
  2. The employee starts registering time
  3. The employee will fix the problem or create the feature
  4. The employee will push it go a feature
  5. If it gets approved… Continue with next feature
  6. If it gets disapproved, he gets told he’s not good enough, and has to fix XYZ

The typical argument is that outsourcing is a way to optimise output. Machines to generate code to kill bugs or make new features.

But people forget they’re people.

If you take the most talented employee from Silicon Valley and puts him into that system, he will fucking hate it. He will not be a part of the team. He will not care about your business.

People you outsource to are people. They need compliments. They need to talk about their family. They need to have fun.

Today it’s so easy with online tools such as Slack or Skype. Treat these guys are people, not machines, and they will be part of your team.

Myth #3: The outsourcer doesn’t care about your business

People who are treated right do care.

But when an employee is basically an alias hidden behind online platforms such as Jira, how on earth could they even understand and care about your business?

I made a fun experiment recently. I started making a personal screencast every second week and sent it to my people in remote areas. I simply told them how the business did. What the future plans were. What I as a founder was trying.

What happened?

They had ideas. They had feedback. They said thanks. They’re willing to go much longer, because they’re dealing with a person they respect.

Myth #4: The culture differences makes it impossible to work

The culture differences between India and “western world” are huge. However, I’d argue, much less than people say.

If you want to understand people from Philippines: you can easily read blog posts for a couple of hours, and basically understand a lot of how they view the world.

After some hours, you understand that family means everything. You understand that they come from a country with so much corruption it hurts. You understand there is brown-outs, meaning the power can disappear for some hours.

The “culture differences” becomes less if you start to see your employees as people. If you talk to them and respect their differences, it turns out they’re people as well. And people are actually quite easy to deal with.

Myth #5: Outsourcers work 70 hours a week

Just as you look forward to friday evening after a 40 hour work week, a developer from India does the same.

The difference is the developer might have to work more, in order to support their families.

But in most cases, everyone likes their weekends. They need time off. They need to spend time with their loves ones.

Outsourcing simply means moving tasks outside the company. Tasks can be moved to India, Ukraine, Russia, Philippines and many other places, but it can also be outsourced to a company in the same country (US, UK, Scandinavia depending on your nationality).

But outsourcing means moving tasks to people. These people might have a lower salary, but they’re still people. If you treat them right, you have just gained some potential super stars, who are both a part of the team and maybe even a new friend you can learn a new culture from.

Benefits of outsourcing

When people use the word outsourcing, price is often the underlying reason. Cheaper prices attracts, and that is what most people focus on.

While outsourcing definitely can have a very good value vs. price case, there are more reasons which makes outsourcing worth pursuing.

Using timezones for benefit when outsourcing

.

Working with a local team, gives you up around 8 working hours pr day. If you stretch your team, you might get 10 hours pr day.

With outsourcing you can come close to actively working 24 hours a day.

The first time you make a specification for a task when you leave the office after a long day, and it is done when you arrive in the morning, it feels magical.

But it makes sense. Lets say your local team is based in London (GMT+0). If you have a team in the Philippines, they work in GMT+8. That usually means the team will overlap, providing a longer working day. This can be combined with a team in South America or on the west coast of US, which can continue the work when it gets late in the London office.

For urgent projects, this provide a huge value

Different cultures are better at different tasks.

Some coding tasks are repetitive. Very repetitive. This for instance includes writing tests, admin interfaces and multiple integrations towards API’s.

An example was a recent customer of ours, who needs to make an implement towards a lot of shipping API’s. All of these API’s are basically the same implementation, and just requires a lot of code.

This team is based in Scandinavia. Now, people from Scandinavia value new and creative tasks, and doing the same implementation 20 times would drive many Scandinavian developers insane.

This was easily outsourced to a talented group on the Philippines, and the quality was probably even better than if it was done locally, because the tasks would bore a local high-performer.

Our experience is different cultures have different strengths. I would never let a developer from Denmark write 100 unit tests for an existing application, and I would never let a developer from India design a high-converting landing page for a complex IT product.

It’s all about using the strengths and weaknesses.

Unique perspectives.

As covered in the first e-mail, our experience is: If the employee feels like a part of the team, they will care for your business.

Then they will give feedback. It’s amazing what kind of feedback people from different regions give to your product.

An example I recently had was with one of my Danish clients. They run a big webshop, and have a development team in Ukraine, The team in Ukraine really enjoys working with the Danish company, and they all meet physically at least every year.

The business had decided on a solution, had the UX team accept it and the project leaders has accepted the solution. The guy in Ukraine basically replied the solution didn’t make sense for the end users because of a various of reasons, and ended up getting his solution accepted instead.

Scalable.

Depending on where your company is based, having employees can be very difficult. I am personally from Denmark, which is known to be quite easy to both hire and fire employees (unlike for instance Sweden or France).

In Denmark it’s still quite expensive. After 3 months of employment, a Danish developers have 3 months of resignation. The same is the case in most of the western world to some degree, especially when the employee is in a position of experience.

In Ukraine or Vietnam, that period can be 2 weeks. If you hire on freelance contracts it can be day-to-day.

That makes it extremely easy to scale both up and down, which both can provide speed and a lot of cost savings.

No task is too small and technology is not a problem

When hiring an employee, you take a gamble with that person. It’s often a quite expensive gamble, and often it requires training.

With outsourcers, you can often find someone who is an expert in a given technology.

A recent example. I have a client with a .NET, who installed a WordPress solution a year back. It was a student who built a WordPress site, that slowly had grown into a very important tool for marketing.

One day the site just broke. Badly. One of the plugins started returning random data. They outsourced the task to us. This cost 120 USD, as he had a WordPress expert ready to react same day.

Every time this company needs maintainence of their WordPress site (every half year or so), they can use outsourcing. They don’t need a stable resource and small tasks can be handled.