"I don't Outsource"
Why Outsource at all?
A few years ago I worked for a CTO who said “I don’t Outsource.” I said - “Why the hell not? It saves you time, money and helps get product out the door faster.”
He told me: “1. There is too much overhead managing external teams” (managing across time-zones was a big factor but he also didn’t like the cultural and language differences), “2. I don’t think the quality is as good.” 3. “It’s better to keep the knowledge base in-house.”
“Wow” I thought to myself. “This guy won’t last long here.” He missed several important factors in coming to his decision not to outsource. By the way, I was right, he was fired a few months later, but not before a large number of Engineers had to be let go and several major milestones had been missed and several deals that were thought to be closed fell like dominos.
Had this CTO had a clear and well defined Outsourcing strategy, he could have saved the company a lot of money, met all the deadlines and avoided the layoffs.
There were a few things the CTO didn’t think about:
1. The cost of his internal team - fully loaded costs (Profitability)
2. Time wasted building a large internal team while opportunities from sales couldn’t be fulfilled (Time-to-Market).
3. Turn-over of internal Engineering (Stability)
4. The need to add a large number of engineers quickly in order to meet certain business needs (Scalability)
5. Protecting Intellectual Property (Core Assets)
The last item seems counter intuitive. I’ll explain that later. For now, let’s talk about the other items on the list:
Profitability
If you are too heavy with internal full-time employees, you’re spending up to 33% more than the base salary in true costs. This means if you pay an average of $123,000 in base salary (average medium level software engineer wages in Silicon Valley), you’re actually paying over $160,000 in employee costs (both hard and soft costs, called “fully loaded cost”). Multiply that times the number of employees and the amount you’re really spending quickly becomes a huge burden on the company cash flow. When sales projections are missed, or funding levels drop, most companies lay-off a percentage of employees, including engineering. It’s better to keep a leaner “Core” team and expand engineering with a trusted Outsourcing partner. The cost of a good Outsourcing engineer can be as low as $57K per year – Fully Loaded – So about 1/3 the cost of the internal employee. On the other hand, if you are a new start-up with very little funding, you can create an entire team with an Outsource partner, while you slowly build an internal team. Picking the very best local people on your terms. Finding the right people always takes time and time is something start-ups don’t have. Choosing the right Outsourcing partner is key. You’ll need the right mix of talent, cost and availability. This is where you might want to consider Near-Shore. This will help cut down communication gaps, which is one of the biggest reasons Outsourcing doesn’t work for a lot of new companies. Profitability doesn’t just mean low cost. It means controlled, predictable cost with predictable outcome as well.
Time-to-Market
So what drives your go-to-market needs? Is it to be first in the marketplace? Is it to catch up with competition? Fill a new need your company didn’t expect?
Throwing more bodies at a problem doesn’t mean you’ll solve it. Having a strong core team focused on strategic activities will help get you there faster. So if your core team is focused on strategic activities, who’s doing the tactical work? Using an Outsourcing team will help here. It faster and cheaper to use a GOOD Outsourcing team then to fragment your core team with work they probably don’t want to do anyway. Focus on a partner who can bring you the skills you need, who can scale with your needs, and who can help keep your budget in check with reasonable rates. I also think you need to find a partner who works in the same or significantly the same timezone. Since most development teams work in Agile, this last piece is very important so you can keep the communication and development process in sync.
Stability
This happens in two ways. First, keeping a smaller core team means they are working on more strategic tasks. The average internal engineering turnover in the USA is 2.5 years. Having a more interesting job helps keep them longer. It allows you to build a smaller but stronger team and by keeping them longer, retain their knowledge base. Having a stable internal core team keeps development time shorter and turnover to a minimum. Secondly, you must find an Outsourcing partner with LOW TURNOVER or “churn” rate. This is important because if a financial catastrophe happens or if there is a major shift in the market, you could find yourself in “survival” mode. Meaning, even your core team might have to be reduced to a bare minimum. Your Outsourcing partner needs to be your “back-up” plan for core knowledge and development skills while your company recovers from this financial or market road bump.
On a positive note, if there are no financial or marketing downturns, you’re probably going to experience significant growth. A growth spurt is even more reason to have a stable, core team with a reliable Outsourcing partner. A good Outsourcing partner can help you manage both sides of the scalability equation. In either good times or bad, you’ll always want to protect your core engineering team. Even if that “team” is 1 person.
Scalability
Scalability doesn’t just mean hiring more people. Here is where having a strong and stable Outsourcing Partner will help most. Remember, we talked about the cost of hiring employees and the importance of stability. Here is where the two benefits pay-off. In the good times, you often need to react to new opportunities. The ability to hire 10 full-time engineers by next week, isn’t possible in Silicon Valley (or most places), you simply can’t interview, hire and get them up to speed.
To hire 10 engineers in Silicon Valley takes on average 3 months (then they have to ramp up after that so you might waste 4 months or more trying add a large team locally). However, a good Outsourcing partner has a pool of people already on staff and they can add 10 people in a short period of time (most can do it between 2 to 6 weeks). On the other hand, once the opportunity has passed, you might have to reduce head-count. Reducing head count (scaling down), has much less impact on your core activities if it’s done with the Outsourcing partner. Those same people are still employed (usually assigned to a different project or customer) and available the next time you scale up and you’ve not lost a single internal employee when reducing these costs.
Core Assets
Remember our CTO who said “I don't Outsource” - well when all of those engineering were laid-off, a huge amount of knowledge and experience walked out the door as well. Some of these engineer could even end up at a competitor. So yes, Outsourcing actually helps with your Core IP (Intellectual Property) and here is where we put it all together:
Your Internal team now can focus on core competencies, meaning they can focus on the most important part of your business. This also frees your internal team to innovate and to be creative. Your internal team now doesn’t need to worry about tactical issues (those should be reserved for your outsource engineers). This allows you to now reduce your time to market, which has two benefits: Beating the competition to market and more importantly generating revenue faster.
Last but not least, having a good Outsourcing partner will reduce cost. This makes for a stronger, more profitable company. All of these combine to help protect your company and core assets by creating a stronger, more profitable and more stable company. Having a strong core team, with a strong Outsourcing partner will help in both good and bad times, make for a stronger and more profitable company.
Mark Andrews is an executive with Waverley Software, a California based Software Engineering firm with engineers in California, The Ukraine and Vietnam. Mark has over 25 years experience in delivering global software solutions across a wide variety platforms and technologies.
?Copyright (c) 2015, Mark Andrews, all rights reserved. Duplication granted when crediting author and without alteration or edits.
Farmer and Retired Embedded Software Engineer
9 年Seen good outsource, seen bad outsourcing. Management of the outsourcing team is critical. They must feel as part of the fight to build the product and not as a team to extract as much from the prime contractor. Really key, really difficult to achieve.
I agree with Cedar. If the component is self contain, clear I/O. Out source could allow the internal team to go after a high return on investment project. But, if it a mixture of stuff. Not a good thing.
CTO | VP Engineering | Scaling teams into high-performing, cross-functional organizations, while delivering measurable results
9 年I think a big consideration here is what the outsourced team would actually be working on though. If it's a self-contained product that they can completely own it can work. If it's a well documented and understood problem, it can work. If it's a dynamic, quickly changing product outsourcing is a very bad idea. With outsourced teams working on a fluid project, you end up paying far MORE than you would with local engineers. The issues with communication of requirements and rework add up quickly. For those projects that do work well, I've generally experienced outsourced productivity at about 1/3 that of local engineers (i.e. 3 outsourced engineers can do as much work as one local engineer), so if you can get the cost per engineer lower than that and still get quality people, you can win at it. Mark, one thing you didn't really address though is the ramp up time. If you're scaling an outsource team up and down you are losing knowledge about the system, and the new engineers coming on board will need to be trained up again. It's far better to keep someone around long term so that knowledge isn't lost every time things go up or down. Thus, you really aren't as flexible as you might think with an outsource team. Having said all this, I do outsource. But I do it very selectively and only with projects that are independent and well understood.
Executive VP, B2B Cloud Services Leader
9 年These are the underlying concerns, that are not mentioned: 1. I don't want to shrink my empire. 2. I don't know how to work with remote teams. 3. I don't want change, I'm comfortable with things as they are. 4. NIH These concerns should be addressed first. Many companies have crossed this bridge successfully, but you have to have the right attitude to make it successful.