What’s Wrong With Outsourcing?

If you’re building a business, you’ve probably had to think about building your software solution. Very often, the way to go is outsourcing, be it onshore or offshore. Sadly, in most cases, this turns out to be a painful experience. A 2011 survey reports that 62% of offshore IT contracts cost much more than businesses expected in the United States.

Indeed, outsourcing your solution comes with many issues. It’s usually quite complex to formulate your needs accurately, leading to expensive delays and difficult discussions. Even when you eventually get what you want, maintaining and evolving it over time is going to be hard. You need to hire the same agency — most programmers won’t touch somebody else’s code -, request a new proposal, etc. And if you reach the limits of the current agency in terms of skills, you very likely will have to start over… Finally, even if it works great, you’ll have to handle your back-end, servers, etc. yourself. They will break at some point, inevitably…

On the other hand, isn’t it better when we get things done by people who are experts at what they do? This usually guarantees a more efficient approach. This is true for lawyers, accountants, or even HR. For instance, ZenPayroll has made many businesses’ lives easier dealing with setting up a payroll and looking after their taxes, etc. Shouldn’t this apply to software development as well? Don’t we want to get our software solutions built by people whose core business is building software, rather than trying to build out an internal software competency?

Building software is a specialist discipline. This is because, today, building software means writing code and engineering systems. And this requires a deep technical training, similarly to understanding law or dealing with taxes. So, we have a dilemma: on the one hand, writing code requires the kind of specialization that’s best dealt with by outsourcing, and on the other, building applications touches on core business issues that are extremely difficult to outsource.

That dilemma is precisely what motivated us to start Bubble. Our — unconventional — solution is to separate the application development process from the coding part. Bubble is a platform where anyone can build an app visually, by putting together some elements and some logic widgets, very much like playing with LEGOs. Coders are still writing the code, but only to build these widgets. Creating the application and coding the software become two very different things.

In other words, we want to have software engineers do what they know best: writing code and handling infrastructure. Let’s not have them do what companies are better at. Companies, employees — the actual end-users — are best at defining what they need, because they are the ones dealing with the issues they’re trying to solve through technology. The reason Facebook was a smashing hit in colleges was also because it was built for students by a student. Mark Zuckerberg happened to know how to code, so he was able to build it. If Bubble had existed back then, any student could have built Facebook.

The advantages of such an approach are huge. First, you get to build exactly what you need. You retain control on the product and you can evolve according to your needs, without outside assistance. And since specialists write the code, the code you’re using is good code (because there is such a thing as bad code). If some functionality (an elementary brick) is missing, and only then, you hire them to code it and add it to the system.

With such an approach, businesses can focus on their core competency, without losing control on the critical tech component. Take a company like Airbnb. Its core competency should not be writing code. In fact, its real competency is building an accommodation business. And, because we’re in 2014, it happens to be online. What Airbnb excels at is defining the right user experience, setting up a great customer service, making sure apartments have nice pictures, etc. Today, Airbnb still needs to hire engineers, but this is not the most efficient way of doing so. Similar to how most startups don’t handle servers any more (thanks to Amazon’s or Google’s cloud services), startups shouldn’t have to handle the code either. This is not just their core competency.

As we move to every business having an online component, this question becomes more and more critical. We need to figure out a way to make software development more efficient. Relying on external agencies or a few highly-paid software engineers just won’t work. We see new platforms such as Bubble — that separate coding from application development — as the solution.


Originally published at www.huffingtonpost.com.