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 company?
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. So shouldn’t you 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, whether or not to outsource software development is a decision that needs to be taken early on in a startup’s life. The choice can often leave founders in a quandary as to the best approach.
At Altar.io we’ve worked with several early-stage businesses, as well as provided product innovation for larger corporates. We’ve learned many lessons on how to tackle such a momentous decision.
So if you’re deciding between outsourcing to a software development company or building your tech team in-house: here’s the structured reasoning to help you avoid mistakes.
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 Your Product? Or is it a Vehicle to Solve a Business Need?
For most startups there are two possible answers to this, either:
- Technology is the core proposition;
- Technology is the means being used to solve a business issue.
In general, if your business comes under scenario one then you are more likely to develop the solution in-house. If it’s scenario two then it’s more than viable to outsource your startup’s 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 scenario one.
Contrast this with Airbnb, which enables property owners to monetize their homes and enable travellers to have a unique experience in the city they are visiting. The key value proposition of AirBnB is for property owners and travellers, meaning the business comes under scenario two.
Generally, businesses that come under scenario two and are using technology merely as a way to solve a business issue should consider outsourcing. We’ll get to the reasons why a little later.
For now, let’s move on to step two.
Step #2: Does your Product Have a Technical “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 best example of this is GitHub. Yes, the target market for GitHub is developers. However, the underlying technology nor its implementation is unique or proprietary – there is no secret sauce.
In theory, this means that outsourcing the development of GitHub would be completely viable.
To sum up, it’s generally inadvisable to outsource software development when:
- The business has technology as its core proposition and/or
- 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). This is dependent on your willingness and other circumstances that might affect your business case.
To help give some more context, I wanted to share some case studies from successful companies, to help you understand the kinds of businesses that are suited to the outsourcing model.
Do you have a brilliant startup idea that you want to bring to life?
From the product and business reasoning to streamlining your MVP to the most important features, our team of product experts and ex-startup founders can help you bring your vision to life.
Case Studies from Successful Companies That Outsourced Software Development
Let’s start with Alibaba. The now 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. 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.
Upwork is another company that was built using mostly outsourced staff. 75% of their product and development team were freelancers.
Meaning that Upwork benefited from hiring the best talent from the world. And, as they were using an early version of their platform to actually source their team, they also proved the relevance of their product.
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 $250,000 in starting capital. Therefore, their priority was to keep operational costs at a minimum.
To develop from their HQ in Mountain View, California, would have been impossible. So they looked to Russia, where co-founder Jan Koum found some of the world’s best offshore developers to conduct their services.
Chief among them was Igor Solomennikov, famous as WhatsApp’s first iOS developer. He started as a contractor and later joined the team in California on a full-time basis.
All of this to say, don’t worry about looking further afield for outsourced talent. Just make sure you align fully in terms of cultural fit (more on that here).
Wise (Formerly TransferWise)
Wise states that they don’t “offshore, outsource or use consultants”.
But they admit to several “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 their customers.
Probably, in part, thanks to the first company in the next section, Y Combinator.
The Anti-Outsourcing Argument
While perceptions have changed in recent years around the idea of outsourcing, some retain their arguments against outsourcing.
This is a very traditionalist view from the days when outsourcing was a dirty word synonymous with low-quality code and misaligned goals.
However, that doesn’t mean that they’re wrong. To contextualise my point, let’s start by looking at Y Combinator
YCombinator is at the top of the list of institutions that are hardline against outsourcing.
Michael Seibel, partner @YC, puts it bluntly:
Reading YC applications, 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.
Investors with experience in the tech industry will also know that there is a global developer shortage. As such, finding a technical co-founder can be a long and arduous process – something that many early-stage startups with a limited runway don’t have time to complete.
Take Audapio’s founder, Dudley Gould as an example. He spent months trying to find a tech co-founder and still came up empty-handed. So he built his MVP with a software development company. His product went on to be quickly acquired and he exited successfully.
All of this to say, you should always look to bring your tech team in-house at some point in your startup journey. But if you need to ship an MVP quickly to prove your value proposition – there’s no reason not to, as long as you choose the right people for the job.
Michael’s second point, that outsourcing can lead to higher costs in the long-term, is also not entirely false. Choosing the wrong agency can result in higher costs and a longer time to market.
But this can happen with any technical stakeholder you choose. In my experience, it’s not the model that matters, but rather the person/people you choose to work with.
Joel Gascoigne CEO and Founder of Buffer
Joel Gascoigne, Buffer CEO and founder, seems to agree with the YC school of thought. 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.
- Your goals and an agency’s are completely misaligned
- It gets you into the wrong mindset of what it takes to get a product off the ground
- The founding team should wear every hat
While I agree with some of what Joel is saying here, I would say that it is also a broad generalisation – so I would like to address each point, starting with misalignment.
1. Your Goals and a Freelancer’s Are Completely Misaligned
Yes, the goal of any business is to make money. There is a danger when outsourcing that the freelancer or agency you’re working with will prioritise making money over what’s best for your startup.
I would argue once again, however, that this comes down to the people rather than the model.
The best way to combat this risk, should you choose to outsource, is to find a freelancer or agency that is passionate about your project. Do they challenge your vision to make it better? Are they excited by what you’re trying to achieve? Etc.
Also, in an ideal scenario, the right people for you, in whatever form they come, will know their success is bound to yours. They will have the same short, mid, and long-term goals: to see your project succeed and raise millions.
2. It Gets you into the Wrong Mindset of What it Takes to Get a Product Off the Ground
Joel’s point here is that you should be focusing on product-market fit as opposed to focusing on finding a technical stakeholder to bring your product to life as soon as possible.
More than that, he argues that in doing so, a developer or tech co-founder will be far more interested in your idea than if you approach him with an idea on a napkin.
I can’t argue with Joel’s point that you should be validating your product idea as soon as possible.
And certainly, if your product’s technical needs aren’t complex it can work.
What I will say is that you need to be aware that you’re forfeiting flexibility with this option. And usually, that leads to scalability issues. In a future iteration, you may find yourself in a position where you can’t add certain functionality. Rewriting it from scratch may not be the end of the world, but I can’t imagine a scenario where that’s a good thing.
Also important to note: when it comes to validating your product with google forms and other Q & A based tools – be aware that you’ll only be validating customer interest, not customer action.
Take successful entrepreneur Yaron Samid as an example. He set out to build a free platform that would check your credit card bills and notify you if there was fraudulent activity on your account.
He went out to validate his idea and almost 100% of people told him “yes I would love a product like that.”
So he put a tech team together and built the full product. But when it launched, nobody stopped to sign up and use it. They didn’t take action.
In the end, Yaron had to pivot his product (more than once). This extended his time to market, cost him money and meant he had to change personnel to make the pivot work.
Had Yaron instead built a simple MVP and released it to validate his assumptions, he could’ve saved himself a lot of time and money.
My point here is that while Joel has a point, be careful “validating” your idea this way. You risk garnering a lot of interest only to find that no one actually wants to take action.
3. The Founding Team Should Wear Every Hat
A common phrase in the startup world, I’m sure the “wear every hat” theory is not foreign to you.
And it’s true, you will be wearing many hats as you launch your startup. As Joel puts it himself:
In the early days [of Buffer], between the two of us, Leo and I did development, design, database and sysadmin work, customer support, marketing, and more. I even built the first version of the Android app before we invited Sunil to the team to take it over.
And that’s great. If, like Joel, you’ve been coding since you were 12 there is no reason for you not to build your MVP or POC yourself.
But, if you’re a non-technical with a strong business mind there is no point in you wasting your time focusing on the technical execution of your startup.
Your time is much better spent on reaching out to advisors, mentors, investors and potential customers to grow your business.
Instead, you should find a technical stakeholder to help you cycle through the build-measure-learn loop and iterate towards product/market fit.
And, once again, I would argue that it comes down to model vs. people. There are great agencies out there that can help you with this, just as there are great CTOs or freelance developers.
Equally true is the fact that there are terrible agencies, freelancers and CTOs out there. It comes down to ensuring you have the right due diligence process to choose correctly
Still Not Sure Whether to Outsource or Not? Here are The Benefits and Risks
Benefits of Outsourcing Software Development
You have access to technical resources from the very outset. 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).
Also, you may not be able to confidently attract top talent with just an idea on a napkin. This could result in you onboarding subpar talent.
Attracting a CTO is about traction. Showing technical stakeholders that this isn’t just an idea. It’s a painkiller and people want it. Look what I’ve already done without you, imagine what we could achieve together. From a CTO or technical perspective, that’s how you get someone’s attention.
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!).
Instead, you want to concentrate on your business/sales/marketing duties to build the foundation of your business’s viability before committing to expensive developer salaries.
Expertise & Experience
A quality established agency will have helped build hundreds of startups across multiple industries.
For you, this means they will have probably built a similar product to the one you’re bringing to life. They’ll have tips and tricks on how to shortcut (or outright avoid) many of the common hurdles early-stage startups face.
Moreover, they’ll have the experience to challenge your vision to help you make your product stronger in the long run
Risks of Outsourcing Software Development
As with any business, an agency’s goal is to make money. Your goal is to minimize the product expense as much as you can to then iterate on top of it.
Therefore, there is a risk that they will push you to add features unnecessarily to make you spend more money.
But, if they do, they’re not the right agency. The majority of software development companies will never do this. They will only suggest adding features if they think it’s truly beneficial to you.
Again, it comes down to due diligence on your part to find the right agency for the job.
Some agencies may not follow the industry standards for project organization and documentation.
If this is the case their code will be very difficult to follow by any other developers that join the team.
If you outsource software development be sure the one you’re outsourcing to follows every relevant standard. Such as TDD (Test Driven Development) or CI/CD (Continuous Integration/Continuous Deployment).
Several communication issues can arise when outsourcing software development. One of the hidden costs can be a language barrier. Dialect, pronunciation, vocabulary, syntax and accent can all create barriers – especially between native and non-native English speakers.
You also may have to account for timezone issues. Unless you, or the software development agency, are happy to commit to anti-social hours you risk being left waiting for responses from them – staring at an empty email inbox.
You also have to take into account communication technology. As advanced platforms such as Zoom, Google Hangouts, Skype, etc. are they are never 100% reliable.
And, again, unless you are happy to be sitting staring at your email inbox waiting for a response, it’s a factor you have to consider.
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 the contract you sign allows you to 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.
Make sure that either:
- You own the intellectual property rights to the code they create or;
- They give you a lifetime license to use and adapt the code as you see fit.
Doing it In-house – Pros
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 an internal team can make all the difference in a Startup. Taking some words from that article:
As entrepreneurs, we love to challenge ourselves. So when we come together, we challenge each other, exponentially. This expands our creative potential. Bouncing ideas, killing bad concepts, collaborating to refine a singular, golden vision.
This research from Harvard Business Review backs up my theory:
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.
Zero Risk of Incurring Tricky IP Agreements
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 – 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’ll meet lots of interesting people with interesting projects. As well as 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?
It may take months to find the right talent that fits correctly within your team – and still risk coming up empty-handed (again, see this story as an example).
Have you ever managed a team of developers? If you haven’t, be aware of what you are getting into.
It can very quickly take up most of your time, which takes away from your focus on growing the business side of your startup.
If You’re Not an Experienced Recruiter, You Might Need to Fire your Employees/Co-Founder
Serhat Pala states:
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 brings with it (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.
Startup Experts on Outsourcing Software Development
Finally, I wanted to share some more advice from successful founders and startup advisors on whether or not you should outsource your software development.
So Should a Startup Outsource Software Development?
If software development 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 you find the right partner for the job.
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 technical stakeholders 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.