November 15, 2018
Many cringe just thinking about outsourcing software development to some external company. Well, of course they would. It comes with countless challenges, including time zone and cultural differences, fear of miscommunication, or… simply worrying about going with the wrong tech partner, a decision that may very well result in considerable sunk costs.
Nearshoring may sound more encouraging, but it still entails working with developers from some agency who you don’t see on a daily basis.
And yet giants like Apple or Google do not shy away from the practice of outsourcing large chunks of their work to IT companies in India and other parts of the world. That’s not all—the most recent data about outsourcing for big players I found says that 94% of Fortune 500 companies outsource work for one of their core products. And because of the low costs, they usually choose Asian countries to do so.
That doesn’t mean that outsourcing will work for everyone. It just means that it apparently works for most of Fortune 500 companies, but your business may and probably does have very different needs than they do.
Here at Monterail, part of my role as marketer is to collect feedback and insights from our (potential) clients—people just like you, who want their product to become meaningful, thus their desire to allocate their funds wisely when it comes to development. Based on my own research and interviews, I can tell you that there are many different reasons why companies ultimately decide to outsource:
I could probably go on and on, with multiple examples for all of the above.
On the other hand, keeping your team in-house will make sense in many cases—like when your product is your core business and you have money to invest in your team (but having an internal team comes with challenges, too).
It doesn’t matter what the roots of your decision are. Outsourcing software development solves many issues that you may face with your product.
Before I jump into the main subject, I want to point out that finding a reliable partner is always key. Some software development companies will provide you with all the pros I’ll outline below, when other will only mess up your whole idea. You should always ask your network and check directories like Clutch, as you probably know. Clutch provides reliable reviews of project work collected by dedicated analysts, but also lists company portfolios, pricing structures, and more. You can check our profile to see what it looks like.
While Clutch is kinda obvious place to start your research, there are other places where you can look for your future partner:
Looking for a dedicated team with established processes and track record?
Our devs are so communicative and diligent you’ll feel they are your in-house team. Follow the biggest enterprises' practices and work with people who care about your success.
I kinda hear this a lot—entrepreneurs decide to outsource application development in order to avoid risk, an effort crucial for new undertakings (but not exclusively for them).
When you start a new venture, you usually have to face a considerable number of “what-ifs.” What if I won’t find an investor? What if my product won’t stand apart from my competition? What if my cost estimates are wrong?
And then, you finally arrive at the question: should I hire in-house or outsource to minimize the risk? After all if things will go wrong (I hope not!), you will be forced to lay people off...
Outsourcing doesn’t have to be a long-term commitment. You start working on a project and you draw up a contract for only a few weeks or months—just enough to get something to show to your potential investors and clients.
Recruiting, meanwhile, means you sign up for a long-term relationship and makes you directly responsible for the employment of your programmers. Which comes with hiring additional personnel and new obligations for your business. Which, obviously, comes with more costs.
Finding a right software house for the initial stages of work makes a lot of sense, but companies often choose this option even in later phases, to minimize both risks and costs of outsourced software development.
It’s typical for any product lifecycle to have moments where your team will be in the middle of about eight things at once. There will be moments when you will want to, or will be forced to, slow down for some reason. Maybe your frontend team will have to wait for the backend devs to finish up their portion of the work. Maybe you’ll be running out of funds. Or you’ll want to rethink your business model.
Whatever the reason, outsourcing enables you to scale your development team up and down when needed. Embracing this approach, you won’t have to put your in-house developers on hold while still having to pay their salaries, and I believe this is a huge advantage of outsourcing.
Seeking a happy medium, some of our clients ultimately decide to keep some part of development in-house and outsource the rest to an external partner. I believe it’s a reasonable approach for any company.
According to Deloitte’s Global Outsourcing Survey from May 2016, 59% of companies which decide to outsource software development do so to cut costs, while 47% choose outsourcing to solve capacity issues which indirectly refers to the risk management I’m mentioning in this article:
The chart above also says that outsourcing provides access to intellectual capital, an aspect that 28% of respondents considered important.
There are two things to consider here.
First, you get access to experts with knowledge on some specific technology you need or the niche your business operates in. Nowadays, hiring talent is one of the biggest challenges of software development and 33.5% of IT managers identify it as an issue they have to deal with. But if you turn to a software house that is already working your niche or technology, and has some decent track record in their portfolio, you don’t have to worry about any of it.
It’s important to note here that your outsourced experts not only have their own knowledge to rely on, but they can always ask their colleagues for help, even if they are not directly involved in the project. Even though you work with a handful developers, you get the whole company’s expertise.
They bring best practices from their projects with them. Each developer shares knowledge during meetings and code reviews. And you benefit directly from all of that and so does your app.
For example, Monterail is one of a very few companies with a decent track record in Vue.js development. We’ve done around twenty Vue-based projects and have a team of twenty-three frontend devs ready to go. Most of them have worked with this framework on at least two projects. No wonder multiple companies approach us requesting app development with Vue instead of looking for a team on their own. They know it would be almost impossible (or very expensive) to hire a full-fledged team in their circumstances.
Second, software development companies with a track record have their processes and workflows in place. Which is not the case for a newly stood-up internal team.
This is pure gold for non-technical founders and for anyone who doesn’t want to wait weeks or months before it “clicks” between programmers. Good software shops know how to set up your team to start delivering value ASAP.
To benefit from shared knowledge, industry expertise, and efficient processes, you should choose agencies with a track record and good employee retention (they usually are not the cheapest ones).
Speaking about non-technical founders.
There is a number of entrepreneurs who need someone to wear the hat of the CTO when needed—many of them are business people with little to no tech background and they need someone they can trust, someone who will translate business language to tech and vice versa.
It’s a common case for companies whose core business is not the product they want to build, outsource it to some external party. And they need someone who will make all those technical decisions, right?
Software agencies usually assign a tech lead who will act as a CTO for your business. They will make all the technology decisions and explain to you what follows them. They will lead your team and take responsibility for product quality. Together with the rest of the team, they will consult your idea, demonstrate its limitations and opportunities to you, and suggest the best solutions to tackle it all.
There’s a chance such a non-technical founder will suggest a scope too broad for the existing budget. Or request a feature that is not possible to build according to the spec. It’s cause they may lack a very important perspective from a tech person.
For enterprise-level businesses, outsourcing is no longer just an option, but rather an integral part of operations that they pursue alongside other business activities. It’s not a necessity for startups and SMBs, though. Many smaller companies freeze in horror just thinking about the possibility of outsourcing, and I understand why that is. There are simply too many software agencies out there who are unable to deliver on their promises and yet still manage to avoid any responsibility for their failures.
But you can do really well if you find the right team and verify your future vendor closely. Ask a lot of questions, meet them in person, and outline your expectations.
I wish you the best of luck with the process.