Should a startup outsource software development?

It’s a decision that can make or break a startup: Do you invest in in-house resources to create your product or do you outsource software development to a third-party developer? On the one hand, as a startup, shouldn’t product development be a core competency? On the other, surely it’s better to go to market as quickly as possible and allow the “experts” to help you get there and avoid all the pitfalls of technology development.

Both approaches have their pros and cons and the decision is by no means straightforward. The answer depends on many business and cultural factors and the type of product you are looking to build. Nevertheless, to outsource software development is a decision that needs to be taken early on in a startup’s life and can leave founders in a quandary as to the best approach.

At Altar.io we have worked with a number of early-stage businesses — as well as providing product innovation for larger corporates — and we have learned many lessons on how to tackle such a momentous decision. In this article, you’ll find a structured approach to help you decide if you should outsource software development.

The outsource-or-not decision tree

The answer to whether or not to outsource software development requires you to break that complex question down into simpler steps.

Step 1: Is technology part of the core value proposition of the product or is it a vehicle to solve a business need?

For most startups there are two possible answers to this, either:

  1. Technology is the core proposition; or
  2. Technology is the means being used to solve a business issue

In general, if your business comes under (1) then you are more likely to develop the solution in-house. If it’s (2) then your startup should probably outsource software development.

For example, consider Loopback, a Node.js framework that enables developers to create dynamic end-to-end REST APIs with little or no coding. Here, technology is pretty much the only proposition so Loopback would come under (1). Contrast this with Airbnb, which enables property owners to monetize their homes and enable travelers to have a unique experience in the city they are visiting. Clearly, the key value proposition of AirBnB is for property owners and travelers, meaning the business comes under (2).

Generally, businesses that come under (2) and are using technology merely as a way to solve a business issue should consider outsourcing, for reasons we will discuss later.

Sometimes the distinction is not so clear. ConsiderGitHub, the platform for developers to host and review code, manage projects and build software. Whilst technology is the core proposition, the platform itself is there to solve a business issue for developers. This creates a grey area. 

Let’s proceed to the next steps.

Step 2: What is your target audience/who are the buying customers?

Usually, the answer can be summarised as either:

  1. Our product is aimed at technology specialists/developers; or
  2. Our product is aimed at consumers/business customers

Returning to our previous examples, Loopback and GitHub come under (1), whilst AirBnB comes under (2). However, again this can create grey areas that can only be solved by answering one more question:

Step 3: Does your product involve a technological “secret sauce” that makes it unique?

By this we mean either the technology itself is proprietary to your startup, or the way it’s being implemented is unique. The two possible answers are:

  1. Yes; or
  2. No

This clarifies the GitHub “grey area”. The platform is targeting developers, but neither the underlying technology not its implementation is unique or proprietary, so the answer is (2). It contrasts with Loopback, which would come under (1).

Let’s take a look at a visual representation of the 3 steps I mentioned:

Software development outsourcing decision tree

So should you outsource software development or not?

As illustrated in the outsource-or-not decision tree, it’s generally inadvisable to outsource software development when:

  • The business has technology as its core proposition
  • The end consumer is technology people; and
  • The technology is either proprietary or unique in its implementation

In any other scenario, a software project can either be built in-house or outsourced (or possibly a combination of the two), depending on your willingness and other circumstances that might affect your business case.

Case studies from very successful companies

Consider Alibaba, the multibillion-dollar company outsourced software development to a firm in the US.

In Liu Shiying and Martha Avery’s words: “At the time, overseas development talent was still in short supply and the US had the skills Alibaba needed to compete with e-commerce giants like eBay and did it all behind the Chinese internet restrictions.”

The Alibaba case shows startups come in all shapes and sizes. Not all are co-founded in a garage with the right tech person in charge from day one. And there are many others that, for one reason or another, decided to outsource software development at the beginning of their journey.

Upwork was built using mostly contractors. By hiring 150 of their 200 product and engineer workers freelance, they benefited from the world’s best talents while proving the relevance of their project. This sort of self-fulfilling advertising is as cheap as it is genius.

Skype outsourced its platform construction to an Estonian trio of developers. Founders Niklas Zennstrom and Janus Friis proved back in 2003 that international freelance collaboration was no doomed venture, which many thought at the time.

WhatsApp launched with just a quarter-million US dollars in starting capital and with a priority to keep operational costs at a minimum. To develop from their Mountain View base would have been impossible. So they looked into Russia, where co-founder Jan Koum recognized some of the world’s best offshore developers conduct their services. Igor Solomennikov, first iOS developer, started as a contractor and later joined the team in California on a full-time basis. Distance between base and freelancer should prove no cause for concern when startups can now reach around the world as easily as they can across the street.

TransferWise state that they do not “do offshoring, outsourcing or use consultants” but they admit to a number of “independent workers” who, if you dig a little deeper, are developers and technicians emanating mainly from Ukraine. It is interesting to see that some startups that outsource software development prefer to present an in-house vibe to customers.

On the other hand, you have YCombinator. They decided on a different approach.

Michael Seibel, partner @YC, states it straight: “Reading YC apps, I’m seeing too many founders who have raised some seed capital and who outsource engineering to cut costs. This is a common error that is a huge red flag for future investors and is often much more expensive in the long term than having a technical co-founder.”

Joel Gascoigne, Buffer CEO and Founder, seems to agree with this reasoning. He proposes 3 clear points to support the thesis that tech startups should not outsource software development. These points summarise most of the criticism I’ve heard during my many years attending events and talking with founders:

1. “Your goals and a freelancer’s goals are completely misaligned”.

Joel’s point rotates around the fact that freelancers and agencies want to make money, while a founder wants to find the product-market fit for his startup. On the one hand, if the agency or freelancer fixes a price for the MVP, they will take steps to ensure that the scope does not go beyond what they budgeted for. On the other hand, a founder eager to find the product-market fit needs to put his product out as soon as possible and iterate from there. And this is quite opposite to what freelancers and agencies normally want you to do.

Freelancers and agencies normally want to work in a “known problem, known solution” environment (e.g. a restaurant that needs a website represents a situation where both the problem and the solution are known: easy to know what should be on a restaurant’s menu), while tech startups operate in an “unknown problem, unknown solution” (no-one knows if the problem is real and the solution is appropriate until the new product is being used). That’s why there is often misalignment!

2. “It gets you into the wrong mindset of what it takes to get a product off the ground”.

This relies on the fact that the majority of us think that success depends on getting a product built, and that’s why we need to find a tech person (or entity) to get things done if we’re not capable (i.e. coding).

What Joel thinks we need is to concentrate on is the aforementioned product-market fit, which can be achieved by uniting a set of interactions with no code at all (instead of using Wufoo, Google Forms, Unbounce, etc.).

What’s the outcome of this digression? That, later down the road, any decent coder will be interested in joining a startup put together without code and whose early traction shows great potential — that’s somewhere they can make a big impact.

3. “The founding team should wear every hat”.

The co-founders should do everything in the beginning. Why?

  1. It provides the right mindset: the founding team can make anything happen
  2. It cultivates a deep overview of the different areas of the business, making iteration super-fast and decision-making easier and smoother
  3. When at the point of hiring, you’ll know the difference between average people and great people
  4. You develop a passion for all of the different areas you get involved in.

What Joel suggests is that each founder should find the hacks and tricks to validate his assumptions with the weapons they have in their armory. For at a certain point you’ll have such an interesting proposition that a good technical co-founder will come on board.

It would be redundant to go into the big list of successful startups started by (at least) one in-house tech partner as there’s simply so many. Apple, Google, Microsoft, Uber, Airbnb… you see what I’m saying.

Still not sure what to do? Here are the pros and cons of each approach

Outsource Software Development — Pros

Timing

You have access to technical resources from the very outset. Obviously, you’ll need to go through a procurement phase, but that time will be way less than what is required of any stronger commitment (i.e. onboarding the right CTO or identifying your key first employees). On top of this, as your idea is still a “napkin idea”, you may not be able to confidently attract top talent yourself, so it’d be very difficult for you until you find the right person to onboard.

Focus

As a founder, your goal is to validate your idea as soon as possible. The reasons for this are to gather investors and the interest of top talent. The earlier you can begin to do this, the better. You don’t want to waste time onboarding and managing developers (which is in itself very hard!) but you can concentrate on your business/sales/marketing duties to build the foundation of your business’ viability.

Access to great value for money

This applies to certain regions only. Tier 1 talents may ask you for a significant wage, which can be too much for a startup yet to properly kick-off. According to this report by James Wise (Partner at Balderton Capital), you can see the average yearly salary asked by developers in different EU Countries. 

On the expensive side, we’ve got Switzerland (average 90,524 USD), Norway (86,042 USD), Denmark (75,758 USD) and UK (70,500 USD), while on the cheaper side we find Portugal (22,549 USD), Greece (24,805 USD), Spain (34,229 USD) and Italy (34,229 USD). On top of this, it’s intriguing to see that the amount of STEM Graduates does not follow the same price curve, meaning there are cheaper countries that hold a significant technical workforce.

Outsource Software Development — Cons

Misalignment

Freelancers (and agencies) aims to make money, while your goal is to minimize the product as much as you can to then iterate on top of it. Freelancers and agencies might push you to build something bigger than you need.

Dependency

Freelancers or agencies may not follow the industry standards for project organization and documentation. If this is the case (be it TDD (Test Driven Development), CI/CO (Continuous Integration/Continuous Deployment) or other formats), their code will be very difficult to follow by any other developers that join the team later or occupy his seat if he leaves. They will also be the only owner of the key for your castle. So if you outsource software development be sure the one you’re outsourcing to follows every relevant standard!

Tricky Agreement

Be aware of the “lock-in nightmare”, especially with agencies. If you want to be able to work with other parties in the future, be sure you sign the right contract so that you can bring your code to new players. Otherwise you’ll end up in marriage by force and have to call upon your lawyers for the divorce.

Besides the lock-in nightmare, another aspect to be careful of is all specifics concerning Intellectual Property. You don’t want to use a code that belongs to someone else and prevent yourself from iterating your business!

Doing it In-house – Pros

Alignment

Your team has the same goal as you do: to grow the business, and to do so while following a lean, iterative approach: all of you want to minimize the risk of failure while speeding up the validation phase.

Growing professionally and personally, as a team.

In another article I talked about how being in the office can make all the difference in a Startup. Taking back words from that article: “As entrepreneurs, we love to challenge yourselves. So when we come together, we challenge each other, exponentially expanding our creative potential. Bouncing ideas, killing bad concepts, collaborating to refine a singular, golden vision.

Also there’s the Harvard Business Review: “Employees with a neighbour of alternate skills at the desk next door received a 10% “performance spillover”, as observed across three types of worker: productive (who completed tasks quickly but lacked quality), quality (who produced superior work but did so slowly), and generalists (average across both productive and quality dimensions). 

Management could also use these combinations of workers to their advantage, say by grouping workers of opposing strengths — a “quality” worker with a “productive” worker, for example. This improved work quality across the pair to the tune of 13% productivity gain and 17% effectiveness gain”.

No risk to incur in tricky IP clauses

No agreements need to be signed with suppliers, which erases the risk of dealing with any dishonest clauses. Such shady agreements may well prevent you from using, modifying or selling the project at all, or unless you pay the supplier a lavish fee.

Doing It In-House – Cons

When Starting a Business There’s a Timing Issue: How Much it Takes to Find the Right Tech Talents

You’ve read a couple of blog posts about “66 Tips to find the perfect CTO for your startup” and you’re on your way, right? You will hear many people saying that “investors invest in teams” so “you must find your CTO“. You will start hitting tech meetups, purchasing tickets for the hottest startup events like crazy and listening to many geeky conversations trying to find your co-founder. (Don’t get me wrong, I love tech meetups, events and geeky conversations!)

If you pick the right meetups, you will meet lots of interesting people with interesting projects, and also developers that seem to be geniuses when they start dropping buzzwords you can’t understand. But how do you separate the wheat from the chaff?

You’ll take several weeks (or months) before finding the right talent that fits correctly within your team. Is it worth the risk of waiting several months to get things done?

Management Issues

Have you ever managed a team of developers? If you haven’t, be aware of what you are getting into. There are 12 Archetypes of Developers, each with its own specific characteristics. Creating and keeping a balanced dev team is a very challenging art due to these 2 characteristics of developers: (i) generally speaking, they are not the most skilled communicators; (ii) they tend to be fiercely competitive, especially when it comes to tests of intellect.

If Not an Experienced Recruiter, You Might Need to Fire your Employees/Co-Founder

Serhat Pala states it right: “Firing someone never gets easier (unless you’re getting paid big bucks to yell “You’re fired!” at people). Even if you’re happy to see someone go, you know that by firing them you are putting them and possibly their family in a precarious position and that can be tough to swallow. Research done by the Journal of Vocational Behavior says unemployed people are twice as likely to suffer from psychological problems as employed people, so the danger is real.”

Plus all the bureaucratic issues firing drums up (varying from country to country, of course). Then, well, you’ve got to consider the amount of energy and time you should dedicate to the topic.

Firing is never easy, to put it again in Pala’s words: “the best time to fire someone is before you hire them, which means you should have a thorough process for recruiting and interviewing candidates so you only hire people who you don’t need to worry about firing later”.

An Overview by the Experts

Judy Robinett, startup expert and author of Crack the Funding Code

“The key decision point is around how quickly you need to get to market and what your financial resources are.”

Outsource software development - Judy Robinett

Judy Robinett, startup expert and best-selling author of Crack The Funding Code notes “The key decision point is around how quickly you need to get to market and what your financial resources are. Remember, outsourcing has been used by many very successful companies to develop their MVP, such as Slack, which is valued at $3.8bn, Skype which sold to Microsoft for $8.5bn, as well as BaseCamp and Github.”

Evan Varsamis, CEO at Gadget Flow

“If you have someone in-house, most probably there is chemistry between you so it’s more efficient to talk about projects and get things done.”

Outsource software development - Evan Varsamis

However, outsourcing is not for everyone, and there are cultural factors to consider. Evan Varsamis, CEO at Gadget Flow states “I personally prefer having an in-house team to work on projects instead of hiring a new team/developer for every project. Most freelancers or outsourced teams care about delivering the project, not the best possible version of it but whatever releases the next payment.” He adds “Another issue (with outsourcing) is communication. If you have someone in-house, most probably there is chemistry between you so it’s more efficient to talk about projects and get things done.

Minh Q. Tran, Managing Partner at Odysseus Alternative Ventures

“You can outsource software development only when tech is not key to your business”

Outsource software development - Alexander Jarvis

Minh Tran, Managing Partner at Odysseus Alternative Ventures presents a very practical view on the matter. Outsource software development when: “tech is not key to your business. For example, in crowdfunding, if the key success is about getting projects on the platform or investors then you can white label the platform to kickstart your business”. Don’t do it when: “tech is a barrier to entry to your business. For example, in regtech, you need to build a KYC platform to match EU regulations, etc…”

Alexander Jarvis, startup mentor and co-founder of 3 startup “unicorns”

“If you have cash, want to launch fast, and don’t know lots of developers then pay a quality shop to ship. On the other hand, if you have some cash, don’t want to throw out code, and will be fundraising soon then do it yourself!”


Outsource software development - Alexander Jarvis

Alexander Jarvis, startup mentor and co-founder of 3 startup “unicorns” usefully summarise the main benefits and challenges around outsourcing versus in-house development:

Outsource Software Development – Pros

Team: All the tech skills are at hand, and if team members suck, that’s not your problem, the shop needs to find someone else.

Quality: If the outsourcer is really good, you get a product that actually works.

Project management: Good shops will run a process, and you should typically expect a product on a fixed timeline.

Time to market: If you are trying to ship an MVP, they may help you do that faster. If you are burning money, having a product to sell matters.

Focus: If you aren’t a developer, you don’t have a clue. If you don’t initially have to deal with tech, you can focus on other aspects of getting set up, like marketing, etc.

Outsource Software Development – Cons

Price: They will be more expensive than if you are competent and have access to the right people in-house.

Documentation: They might not document things properly, meaning you may eventually end up throwing out the whole codebase and start from scratch

Code: Lower quality shops or independent devs may ship crap. Ok, you get going, but you still may have to dump everything eventually.

Investors: Do not look favorably on third party work as there is no tech competency in house. You illustrated you can pay people, but not that you can ship anything.

In-house Development – Pros

Control: You have more control over the process.

Continuity: Easier for devs to work on the code that they built.

What are you?: This is the KEY point. If you are a TECH startup you need to be a tech startup. What are you otherwise? It needs to be a core competency.

Investors: Prefer this as you have proven you can build a product and so will be more likely to be continually able to improve and adapt it for customers.

In-house Development – Cons

Hiring: Do you know where to find the devs you need? Most founders don’t have a clue where to start.

Firing: If your idea doesn’t work you need to scale down, which is hard.

Mess up: If your devs don’t ship, you can’t launch at all. It’s better to have something expensive that works, than something sort of expensive that is pointless and doesn’t let you learn from your customers.

So should a startup outsource software development?

If outsourcing is a potential solution, the decision to do so will depend on many business and cultural factors. And if you decide to outsource software development, then ensure it’s on the right basis.

Paul O’Brien, founder of MediaTech Ventures, and Director for Texas of the global startup incubator Founder Institute provides some useful insight on the matter: “Outsource the job to be done. Not the reason it needs to be done nor the ownership of what needs to be done; outsource the skills and work in the same manner that you’d hire the best resources for any job. The challenge for entrepreneurs is in appreciating that what is built still needs to be your IP. Outsourcing your software build should not be at the expense of losing your understanding, control, or ownership of what you’re doing.

Outsource software development - Paul O'Brien

Now that you have reasoned with the Decision Tree diagram, looked at the best-in-class examples, and seen what the experts had to say, you must be close to making a choice.

Whatever your call may be, you should read the full recipe of traits to look for in business partners right here: What’s the Best Way to Build Your Startup? CTO, Freelancers, Agency?

The choice, as they say, is yours. But whilst there are never any guarantees that the decision you take is entirely right, by ensuring you take it on an informed basis in terms of business needs, cultural fit and financial resources, you stand a much higher probability of success.