The term in-house development is more or less clear, whereas software outsourcing is often confused with outstaffing. But these are two different things. To avoid misunderstandings and sync up our visions, let us clarify what’s what.
Outsourcing and outstaffing: let’s nail down the terms
Outsourcing — when a client company hands over tasks or functions to a vendor. This is exactly how Purrweb works. For example, a startupper turns to us with $50K and an idea to create a matching platform for musicians so that a guitarist could find a drummer and knock a group together. We draw up a quote, approve it with the client and develop a turn-key app.
Outstaffing — when a client company gains access to seasoned professionals of a contracted software development company. We don’t follow such an approach. But if we did, it would look like that.
The same startupper addresses us but they already have a team and they’ve been developing this platform for the last 3 months. However, right before the release their frontend developer got tired of a nine-to-five job and went solo. You won’t find a frontend developer in a snap on your own, but outstaffing may help. Purrweb provides a middle React Native developer and assigns him to the client’s team.
Now that we got the sense of the terms, it’s time to move over to the in-house development vs outsourcing battle. Let’s start with breaking down the essence of outsourced software development.
Outsourced software development: overview
Digital product ideas often come to those who don’t have enough background in development. For such entrepreneurs outsourced development acts like a golden ticket to a professional roll-out. You just have to take heed to protect the product as your intellectual property.
External team has streamlined development processes and by virtue of expertise they run hasslefree. This also comes at hand if you’re about to validate some hypotheses to see if it hits the market or not. Such an approach is called a minimum viable product release.
Outsourced software development companies perform the full cycle of product building from initial product discovery up to release and further maintenance if needed. They are already fully packed with all the staff you need to release your first application or website including:
- project managers,
- UI/UX designers,
- frontend- and backend-developers,
- QA engineers.
Let’s see what makes startuppers lean toward outsourcing software development over in-house development.
Pros of outsourced software development
First the perks. There are four main grounds for outsourcing software development.
Two times lower costs
The hourly rates of developers from the USA and Eastern Europe differ by 2,5 times. The average hourly rate of a senior developer in the USA is $78-125, in Eastern Europe — $30-59.
Let’s draw an example. Like WhatsApp. The story of software outsourcing in this company started in 2009. Back then the messenger market was empty, though the first versions of Blackberry and Facebook messengers already hit the market.
One had to act quickly to take up a position. The founders had a choice: in-house development vs outsourcing. There was no time for putting an in-house team together. That’s why WhatsApp submitted iOS mobile development outsourcing to a group of developers from Russia. It helped them to save on fixed costs without sacrificing neither the quality nor the speed.
No shortage of resource capacity
Development outsourcing is a more flexible approach in terms of the team’s line-up. For example, a team lead, a QA engineer, backend and frontend developer has been working on the project for 3 months. But there is no use for such a big team after release: 20 hours a week of front- and backend along with 5 hours of QA will do well. Development outsourcing makes such a framework possible. If you have an in-house team, you will need to find side tasks or pay for partial workload.
Here is another case: tight deadlines are in play and you need to develop a product in 2 months.. We had a similar situation on our project Headcount: a B2B service for transferring money to contractors around the world.
Generally, we assign 3 developers to make it in 3 months but the client needed to have an MVP in 2 months. That’s why we added 2 more developers, started off the development and made it on time.
You get access to an international pool of talent
For example, it’s harder to find a developer in a small city than in a capital. But relocating a team of 20 just to fill a couple vacancies is illogical. Development outsourcing allows you to look beyond your local labor market.
Alibaba started using development outsourcing as early as in 1999. At that time, in China there were no specialists of the level required to fuel the rapid growth of the platform.
On top of that, the founder used external expertise and focused on the core competence of Alibaba — eCommerce. As history shows, the strategy turned out to be successful: Alibaba’s share capitalization recently reached $570B.
Possible to delegate particular processes
You don’t necessarily need to use full-scale development outsourcing. Simply delegate part of software development tasks, say team leading or project management. It worked like that on our project, Mamado — a service for parents which need children’s products and services.
The client came to us with a ready-made code. The team has been coding an app for one year but couldn’t make it run though. We needed to help the team tweak the app to release it.
Along the way we aligned the management: established Scrum, sprints and daily stand-ups. As a result, we released the app on time, the client’s team now understands how to manage the project to meet a schedule.
Cons of outsourced software development
Even the sun has dark spots. We want you to be prepared for the ins and outs of outsourcing software development in order to make the best of working with a software development partner.
Low cost ≠ high quality
Miracles don’t happen: when you choose a software outsourcing company for $20/hour, it’s naive to expect the result worth $50. You have to pay for a fine product.
If you don’t want to get buggy code, you’d rather address middle or a bit higher priced software outsourcing companies. Recently, we compiled a checklist that can help you choose a decent contractor for development outsourcing. Check it out ⬇️
Not the best stack, but an available one
A software outsourcing company may offer not the best tools but the ones they have experience working with. It’s crucial for a software outsourcing agency to be able to say objectively if they can help out or not.
For instance, our core competencies are React, React Native and Electron. When we start making a quote for development outsourcing, we’re looking for ways to use our stack. If a client’s app will be functionally limited on our stack, we clarify it right off the bat and find balanced trade-offs.
A contractor doesn’t understand the difficulty of the task
Young web studios lack experience and they strive to close the deal fastly thinking like: “sell now and figure out how to do it later”. It’s an ineffective framework because it’s hard to predict the timeframes and shape client’s expectations.
For difficult projects where we lack initial data and the app business requirements are vague, we suggest analytics and prototyping services. This way the client sees how the app will work and whether this is exactly what they need. From our side, we can give a precise quote for development outsourcing.
When will development outsourcing do well
Based on all the aye and nay listed above you can judge whether an outsourced team fits your case or not. But just as a safeguard we’ll share some scenarios when handing in the development process to a vendor seems the most reasonable.
At the start
The most fragile moment of a startup’s life cycle is the beginning. Business angels aren’t lined up in a queue ready to invest their $100K and there is no lucrative product yet. That’s why it’s a suicide to take up the salaries, rent expenses and taxes.
To make the most of the limited budget you can go for outsourcing development of a minimum viable product. Just like our clients did with Kem, a mobile payment platform in Kuwait. Its owners contacted us to make the basic application that could attract investors and let them see that the idea was worth supporting.
To enhance product potential our software developers used mock data. This gave a clue to the banks of how the application would perform in user hands.
Development outsourcing is more predictable and foreseeable. If you use development outsourcing services, you’ll have a detailed quote with timeframes and a plan.
For one-time or non-core task
When you need to make a website or a CMS with a clear functionality, it’s easier to leave it to development outsourcing. It’s a product that doesn’t need many enhancements. You don’t need to assemble an in-house team or have a support team.
FC “Spartak” works like that. They have their IT department working on the ticket system and the stadium infrastructure. The app and website development is contracted out to a software outsourcing company.
To shut the resource gap
When you already have a team but lack a clockwork management process or particular expertise, you can contract out some processes to a development outsourcing team — the Mamado case. Or say, you have HTML/CSS developers but need to develop a mobile app, then development outsourcing is an option.
How to set up a cooperation with an outsourced team
In nine out of ten cases startuppers just skim through resources like Clutch to select a contracted software development team. You just study client reviews, portfolio and experience in your niche.
But as soon as you have picked the side, there arises another predicament. You will definitely want to ensure a predictable development process, transparent communication and proper quality control.
Here is a small checklist of the things you can do to leverage the partnership with a development team:
- Specify your business objectives and why you want to achieve them.
- Share everything you know about your customers and competitors.
- Provide references with desirable and undesirable interface elements.
- Arrange an initial kick-off to get acquainted with the team and set communication rules.
- Agree on how often you will hold check-ins.
- Stay involved on each development stage to ensure quality control.
- Set achievable deadlines.
- Contact your project manager or arrange a meeting in case of any issues to support productive communication.
In house development: overview
With in-house development it’s fairly simple. This is a classical way of hiring your own development team. This means to undergo the full process from searching through CVs to onboarding and mentoring.
In-house software development serves better for those familiar with the market and capable of arranging design and development processes. In-house model requires self-management and coordination. Apart from stressing out about the product release, an entrepreneur will have to resolve administrative issues.
The filling of an in-house development team matches with the outsource. But remember that outsourced teams always have internal leads who are there to check the quality of code or design mockups. So, for in-house development you may have to hire the same experts as well.
In some cases you just can’t do without the involvement of skilled tech and design leads. Say, when your development project has IoT integrations like in our case with Shockers application. Our client asked for a desktop app that could analyze data collected by the stun guns.
This was a challenge, but owing to 9 years of expertise we managed to achieve a successful roll-out.
In-house development also requires some working environment for the team including office appliances like laptops, desks and chairs as well as some virtual workspace. The latter mostly revolves around task trackers, servers, coding environments and images or icons for design.
Pros of in-house software development
Let’s dive deeper into the pros and cons of in-house development.
During the outsource software development the team gets its hard knocks and masters the know-how basis. It works like a flywheel. At first, you need gargantuan efforts to kickstart the flywheel. But when things finally get moving, the flywheel gains momentum and fuels the growth. For 3 months, the teammates adapt to each other and to the product. When the product is running, the team is already in the loop and needs way less time for adjustments.
Quick bug fixing after release
One month after release when 1000 users enter the platform, some bugs may pop up. A development outsourcing team at that moment will already be busy with another project. Even taking into account their flexibility, it isn’t possible to onboard the new team faster than in 2-3 days. The website will be frozen during this time. When you have an in-house team after the release, it’s easier to run back to them saying: “the website went down” and guys will start fixing it right away.
There are more areas of common interests inside the in-house team like corporate parties, team building events or LFPs (Last Friday Party). It strengthens the corporate culture and team cohesion which directly influences its morale.
For a development outsourcing team your startup is just one more project in Jira which they need to bring to release. As a rule, software outsourcing agencies follow the pre-agreed plan and there is little place for initiative.
Offline communication with people who speak your language is simple and clear. If you need, you can walk up to a colleague and discuss work-related issues pronto. There is no need to waste time on matching the schedules or doing mumbo jumbo around the Wi-Fi router.
Cons of in-house software development
Compared to outsourced development the in-house model has a bit more flaws. Though here we’re considering the matter from a startupper’s perspective.
The flywheel acceleration takes time
With the in-house team the time of product development extends. To get the flywheel moving you need a minimum of 1-2 months from the project kick-off. To assemble a team of 5-7 developers you need additional 2-3 months. During the “acceleration” you have to pay salaries. And it’s a coin toss whether it’ll all work out or not. Many stars should align: developers’ experience, skillful project management and team cohesion.
In-house team requires you to pay not only the salaries, but also sick pays, vacations, social insurance, pension contributions, and taxes. Besides, the in-house team search will take 1,5 month at best.
For example, in the USA it takes on average 43 days to employ a developer. What’s more, it isn’t always possible to find a specialist by yourself. Sometimes you simply can’t do without a recruiting agency. On top of that, you need to provide every employee with a laptop, a screen, a table, and an office chair. Don’t forget about the office space.
Distractions in face-to-face setting
Offline communication is more smooth and accessible but it can come at the cost of productivity. In the office there’s always a room for chit-chat around the coffee machine. There are more distractions in terms of the colleagues running around the office. Besides, it’s you who is responsible for the result, not the development outsourcing team.
Responsibility for the team
The key risk at the beginning of the project lies in the product itself. Does the world need a social network for painters? Or a new taxi orders aggregator? You never know, until you try it out.
In case of software outsourcing, if nobody needs the product, the team will just switch over to another project. Assembling your team you partially take responsibility over the professional future of your employees. So, if the project doesn’t play out, it’s not only you who suffer, but the team that loses the job as well.
When is it better to develop a product in-house?
After you launch a product, soon it becomes clear whether somebody needs it or not. Judging by our experience, startuppers use software outsourcing for MVP development and meanwhile search for a CTO that would take the project over after release.
While the project is supported by the CTO, the startupper assembles a team which then undertakes it. Such a scenario is less stressful for the startupper and saves time: the process of searching for an in-house team goes hand in hand with the development outsourcing.
If you plan to contract out a project with a yearly budget over $110K, you should consider hiring an in house development team. In the long term, the rental costs, salaries, and taxes will pay out with such a budget. In case you plan to spend less, you’d better use development outsourcing. In-house development is a viable option for software acquisition for small non-technology companies.
You already have IT infrastructure
Say, you own an IT product company and decided to branch out your product and create a new one. In such a case, it makes more sense to put a new team together than hire a development outsourcing agency. All you need — hire the developers and scale established management and development processes to a new project.
So, as the bottom line
To make the final choice in the in house development vs outsourcing battle, you need to answer 5 questions:
- Is it a one-off task or a long-term scalable project?
- Do you plan to develop a product that will bring you money directly or you just need a website or an app to make internal processes work?
- Is the speed of time to market critical for you?
- Do you have many qualified developers in your city?
- Is your yearly project budget higher than $110K?
Having the answers to the questions in one hand and our article in another, you can make a well-considered choice. If you’ve decided to use software outsourcing, we are always here to help you out with development outsourcing.