“Should I build an in-house team or out-source my project to a software development shop?”. This is a question I’ve been asked many times as a technology leader, by founders and managers looking to build or improve software products.
Earlier in my career I would favor keeping software development in-house for most projects, but I quickly learned of the many challenges it can bring to a project. In-house teams may bring strong engagement and dedication to your project, but will sometimes lack important skills required to get the job done.
There’s no black and white answer to the “hire or outsource” question in software development.
So what are the pros and cons of each strategy? What are the risks and challenges? What will it cost you? Below we’ll discuss how to choose the right strategy for your company.
In-house software development team
The great thing about having an in-house team is that the people you hire will be dedicated to your team and project. Their interests are aligned with your company’s thus your project will always be a priority.
Whereas an outsider will always view you as a vendor and might not fully offer you a product as per your need.
- High engagement since most interactions are face-to-face;
- Both your interests are aligned because their success is highly correlated with the company’s;
- The knowledge acquired through months of development stays in house and generates valuable IP;
- You’ll have more room for product iterations and pivots;
- No language barriers, timezone issues and cultural differences that can often slow down projects;
- More control and an easier time managing all the moving pieces of the project.
- The hiring process is often slow and costly (recruiter fees, job ads, training, etc);
- Forces you to focus on other business functions like operations, culture, HR and legal, which is time consuming and requires additional staff;
- Can get expensive with salaries, benefits, taxes, raises, etc;
- Tough time hiring in a competitive market where finding talented engineers is hard.
When you should build or augment an in-house team:
- Your product is still full of assumptions and you anticipate a future iterations and pivots;
- You have a technical lead who can help recruit the right talent and manage the team;
- You’re okay hiring staff to ensure operations, culture, HR and legal needs are handled properly;
- You’re a startup looking to generate IP and attract investors.
Out-sourcing to a development shop
- They have all the resources needed and ready to start;
- Better time estimates and planning since they’ve done it many times before;
- Less expensive since recruiting, training and on-boarding of employees is not necessary;
- Faster delivery to market when all requirements are scoped out correctly;
- Learn effective strategies, practices and tools from experts who’ve done it before.
- Less room for future iteration and pivots;
- They tend to push for long-term commitment, so incentives are often not aligned;
- Planning sessions can take months before development starts;
- Poor communication since dev shops are sometimes located in countries with different time zones and cultures than yours.
When to out-source development:
- You have a clearly defined scope of the product features (on paper, not in your head!);
- You’re not expecting many product iterations;
- You have the budget to pay for unexpected out-of-scope features and maintenance costs;
- Your project has a tight deadline and talent is not readily available.
While outsourcing to a software house may seem more cost-efficient, having in-house experts hired will definitely provide more benefits in the long term. It’s often a good idea to mix both approaches at the same time depending on the project, while considering budget, deadlines and scope.
It should also be noted that if your company is looking to become the next Airbnb or Facebook, my recommendation is to invest in an internal team. Good software products go through dozens of iterations and pivots in order to stay competitive; having an engaged and committed team is important.
What do you think? What did I miss or forget? Have you or your team experienced some of the challenges this article addresses?
I’d love to know.