How should a CTO go about building a successful software development team? It’s an age-old question. Do you only stick to hiring full-time engineers to avoid potential risks? Do you have aggressive product goals and need to outsource to scale development faster? How do you decide which works best for your goals or team?
I’ve encountered this dilemma throughout my career, both as CTO at Andela, and previously at TechStars, Sonian, LogMeIn, and PTC — and what I’ve discovered is this: you need to truly understand the difference between hiring and outsourcing, the purposes of each, and how to optimize both in order to hit all your development goals.
Check out my recent talk on Hiring vs Outsourcing for CTO Summit where I share more of my insights and experience on how I build the right hiring mix for Andela, or read the recap below:
The Holy Hiring Trinity: Speed, Quality, Cost
There are 3 things every engineering leader looks for when building their software development team: “I want engineers fast, at expert level, and at an affordable cost.”
It’s nearly impossible to get all 3 when hiring only full-time, in-house engineers. In my experience, the only time I was actually able to get all 3 is by doing both.
My recommendation is to decide in advance what you’re optimizing around, and find talent that can deliver. In-house hires might be the best solution for a complex project that is core to your IP, but they’re more likely to strain your budget (e.g. when I was building a new Scrum Team this year, I found that recruiting within the United States would cost almost $1M more than hiring globally). But not every team and project can be outsourced. Understanding the right time and place to outsource will help define your needs and expectations.
I break down the pros and cons for both below:
The pros and cons of in-house hiring
Pros: Your full-time hires are invested in the company, and you can invest in them in turn. You have full control over them and their work, and they have a much more nuanced and contextual understanding of your product — which is often imperative to successful development.
Cons: The primary challenges of hiring full-time is cost and talent scarcity. It can take longer to find the right person, and when you do, their salary will stretch your budget — perhaps to breaking point.
The pros and cons of outsourcing
While we traditionally think of outsourcing as project- or task-oriented, there are many different outsourcing options available — everything from hiring someone short-term and solely for a specific project or hiring someone to act as part of your team.
Pros: Outsourcing is a comparatively inexpensive alternative (we’re talking hiring in San Jose, California vs. Budapest, Hungary).
It also unlocks specialized skills and knowledge. When I was migrating a project from Angular to React, an outsourced specialist worked with my team for three months providing valuable insights – not just building products, but training my software development teams on the new technology as it was implemented.
Another advantage is employing team members dedicated to a single client’s needs, lessening the burden on in-house staff. Pro Tip: don’t underestimate the benefits of cultural diversity that come with international hires — here is a great example of engineers providing diverse perspective to building an end-of-life planning software.
Cons: However outsourcing does have its challenges. The lack of in-house expertise and difficulty maintaining control of quality and work schedules can be prohibitive. Without proper documentation, you may find yourself rewriting code more often.
While I prefer a long-term embedded model because of the ownership that long-term contractors bring to the table, there is a purpose for both short-term and long-term hiring.
Here is what I typically outsource — especially, in the beginning when you are building trust:
- Specialized skills
- Integration work (e.g. having outsourced talent build marketing integrations)
- Code maintenance
- Not-From-Scratch Dev projects (e.g. Mobile)
The key to successful outsourcing lies in having good guardrails in place. Set appropriate expectations, have good documentation, and take onboarding seriously.
Want to get more of my insights and see my 2021 headcount planning template? Watch the entire video below to get more tips around building a successful software development team.