Outsource or do it yourself — a guide to keeping work in-house (or not)
Building your own team is part of the thrill and promise of being an entrepreneur, but it’s often the right decision to rely on talent from outside the business. Both outsourcing and scaling your own team have risks and benefits. In a previous article, I described the facts about outsourcing and permanent employee costs. Today, we’ll take a look at the right conditions to outsource.
At some point most teams are faced with the decision to use talent from outside the company or grow their own team with permanent hires.
Most companies prefer to build their own teams of permanent staff. For startups there’s the compelling allure of adding talent and scale to your business. In other companies there’s often a belief that hiring permanent employees is more cost effective than working with expensive contractors or consultants. Sometimes in larger businesses the reverse is true and the belief prevails that offshoring (the practice of using cheaper labour in other countries) will lower costs when compared to co-locating your own permanent team in your trendy London/San Francisco/Berlin/Stockholm HQ.
There’s truth in all of these claims, but the fact is that scaling your team can be the wrong decision. Counterintuitively, offshoring is sometimes more expensive than building permanent, co-located teams and sometimes using expensive consultants is cheaper than using your own staff.
The Three Scenarios for ‘Good’ Outsourcing
There’s little that gives me more satisfaction in a business than working with and scaling a team. I’ve always been an evangelist for building internal expertise, but over the years I’ve learned the hard way about outsourcing. I now test against three scenarios where I believe it’s preferable to use external talent rather than to ‘build your own’ expertise. These three scenarios are:
- Engaging high value skills that wouldn’t be consistently used by the company
- Adding flexibility to a stable base of permanent team members
- Adding a capability that doesn’t differentiate your business
Let’s take a look at these in more detail.
1. Engaging high value skills that wouldn’t be consistently used by the company
One of the most recognisable cases for working with external talent is to provide expertise which isn’t already available in the business. A common example of this would be a partnership with an agency that provides specialist skills like marketing, design or strategy consulting.
There are two subtle variations of this scenario; where the work is a burst of project activity with a defined end, and where the work is ongoing but infrequent.
Helping deliver a short term project or improvement
Companies can benefit from this project approach when looking for expensive, technical skills like DevOps and UX (user experience) design. In these scenarios adding external expertise to a team can expedite the delivery of a project significantly.
In one tech-led startup, for example, the technology team had long held an ambition to add a DevOps discipline to their team and technology. DevOps is a practice which makes releasing and scaling software applications more automated and consistent, massively reducing the manual effort required from developers and testers, but DevOps talent is expensive and hard to find.
Rather than hiring a permanent DevOps engineer or distracting their existing developers from their day jobs to rush through training on DevOps practices, the company decided to work with an agency specialising in DevOps to help the team design their new processes and do the majority of the up front architecture. As the project progressed, focus shifted from ‘build’ to transferring the technical skills from the external engineer to permanent members of the engineering team who would take on the ownership of the DevOps practice themselves.
Ask yourself: Does the investment in this project increase the overall velocity of the team? What will happen when the expertise leaves the team — is there some skills transfer that should happen, or artefacts to pass over? Would it be more beneficial to refocus existing team members on this project?
Regular, but infrequent advisory
Relying on uncommon and expensive talent also works well where the skill is unlikely to be used every day; for example a security audit, hiring a lawyer or engaging a tax specialist.
When faced with these types of activity, consider whether it’s worth diverting employees from their core activities with these highly specific tasks. Even worse than distracting existing staff, it makes little sense to hire a skilled, permanent employee to do this highly specific job, but filling only part of their time.
Several years ago in a mature but rapidly scaling business, security was high on our list of priorities. We worked with a number of external security partners (for example, for penetration testing and code reviews), but found that we needed more gravitas at a board level to discuss security and enterprise risk.
We entertained a number of serious discussions about bringing a full time Chief Information Security Officer (CISO) on board, but took the decision instead to take on a part time, advisory CISO. We developed a long term relationship with an experienced CISO who could maintain our governance and coach more junior team members in critical security skills. The CISO was only required for 1–2 days a month, with more tactical security concerns were passed down into the business. This arrangement, while at a high day rate, was valuable and affordable, increasing the overall security awareness of the business while freeing time from other executives.
As a side note, this type of engagement is also well suited to permanent employees who would prefer part-time work. This is a great way to encourage flexible working patterns to support talented individuals who may find it difficult or unappealing to work five days a week.
Ask yourself: Is this an ongoing requirement? Is there enough work to keep a permanent member of staff busy? Can the required expertise be reasonably expected from a team member who is covering other responsibilities?
2. Adding flexibility to a stable base of permanent team members
It’s common to augment software teams with outsourced talent, and the catalyst is often a large project or client requirement that slams into an unexpecting team.
In these cases it makes sense to engage a partner to assist either with the project work itself, or to backfill other tasks the more experienced permanent team have to give up. Another reason for working with an external partner can be to protect permanent team members in the event that demand reduces. We’ll look at both situations.
Augmenting teams for spiky demand
In some businesses demand for resources can be sudden and business critical. A customer request, changes in legislation or a shift in the market can all demand a furious increase in activity. The lead time for hiring a permanent member of staff is regularly 3–6 months, meaning that these volatile projects invariably destabilise fixed teams who struggle to meet the new demand either by working extended hours or dropping other priorities.
In one company, we had a strong reliance on our key corporate partners, who drove a significant amount of our consumer business. A new opportunity to increase the amount of business with one such partner emerged, but only if we could respond in a desperately short timescale. Our engineering team was already stretched, and the new work would have meant that critical roadmap items would drop off. The obvious solution was to augment our team with additional engineers from an external partner who could use their larger pool of already engaged talent to quickly provide a team for us.
While onboarding naturally distracted our permanent team members for a couple of months, we were able to build an ongoing relationship with the partner that allowed us to build a flexible resource pool. Having onboarded a senior engineer from the partner, and kept him retained, our future onboarding time was reduced. Our ability to scale to meet these large, challenging partner requirements was also addressed. Importantly, we were also able to forecast future team growth that included a blend of junior developers co-located with our team, but leaning on external resource where necessary.
Ask yourself: how would we react if we suddenly had to scale our existing team? Is there a chance that we will be hit with large, sudden requirements. How long does it take to onboard new permanent or external engineers?
Creating a buffer to protect permanent team members
A sometimes overlooked element of building a team is the unfortunate alternative to scaling; cutting staff. For mature businesses this can be part of an ongoing cycle but for startups it’s particularly painful as they may not have developed the organisational resilience to go through a headcount ‘down round’. Despite the end of the ‘job for life’, as employers we’re still effectively making a 2–3 year promise to our staff that we’ll provide gainful employment, and it’s a horrible experience to break this promise.
At a tour of the Toyota factory, near Derby in the UK, I learned that Toyota primarily hire staff on a contract basis. Only after a period of contract labour are employees offered a permanent role. Toyota aims at all times to maintain 25–30% of their employee base as flexible workers, in order to maintain their commitment to long term employment of their permanent staff.
The common sense behind this is clear; we should have a greater obligation to our permanent staff than our contractors, and we should anticipate that downsizing can happen. In these cases it makes sense to have developed the capability to flex demand up and down. Outsourcing is a skill, just like running internal engineering or marketing teams, and our processes need to be able to support external workers if they are to be effective. By maintaining a portion of our workforce as flexible workers, we can be more able to protect our permanent staff if the worst happens.
Ask yourself: How would we scale down a permanent team if we no longer needed the resource? Do we have the processes in place to respond quickly to negative changes in the market or our product?
3. Adding a capability that doesn’t differentiate your business
Sometimes services can be more cost effective when leveraged across multiple companies.
If the service isn’t unique or proprietary to your business, and many companies benefit from it, you may be able to keep your business more lean and efficient by outsourcing. Take, for example, office cleaning or payroll services.
Adding a non-core but necessary skill that is best leveraged across multiple clients
Think about the tasks in your business that you’ve already chosen not to do; perhaps you work with an external accountant or bookkeeper. If you work in an office, the cleaning is likely provided by a sub-contractor. The security staff at the entrance? They’re probably not permanent employees.
Just as any other role in the business, the same applies to technical skills. Those housekeeping tasks extend into the technical domain, and may not differentiate your business from others. IT helpdesks and out of hours support for customers are a great example of this, where the work requires a technical skillset, but it doesn’t add strategic value to your business to own it as a competence.
Perhaps the most successful long term partnership in my career was with a company dedicated to the management of servers and data centres. Building a relationship with this partner for over a decade allowed me to avoid having to permanent team members on call for problems with our servers and infrastructure. Leveraging their expertise was not only more cost-effective, but also benefited from their investment in a portfolio of technologies that supported all of their 150 clients, and the expertise of their team. Many other companies the same size as us employed their own staff rather than work with what looked like a ‘premium’ partner, however we benefited considerably from the relationship.
To remove low value, unexciting work from a team
Does ‘business as usual’ work get your team down? Are there projects which everyone hates being resourced on? Removing low value, unexciting work from a high-performance team is one of the great opportunities to work with an external provider.
The obvious, if extreme, example of this approach can be seen in Facebook’s decision to outsource content moderation to Cognizant (please do take the time to read this fantastic article by @CaseyNewton). Facebook, the best place to work in the US in 2017, naturally wants to attract rocket surgeon engineers and offers astonishing salaries and perks to do so. However, they indirectly employ thousands of people to do work that they would never want to blot their employment copybook. Outsourcing is a perfect fit for this, protecting their permanent employees, leveraging economies of scale and allowing them to focus on their core business.
The unpleasant mess of Facebook content moderation aside, identifying rote and unfulfilling work that can be moved to an external partner, who has the luxury of rotating staff between clients and tasks, can be a net benefit for everyone involved. If you can’t remove the process or automate it, this type of outsourcing can be extremely effective.
The power of partnerships
Most developers I know have a visceral reaction to the use of contractors and external agencies, and it’s not without merit. Contractors don’t care about the company, they’ll say. Their code isn’t as good because they’re just paid by the day. They won’t take the time to learn all of the practices and processes of the company.
Much of this is based in reality, and I’d be lying if I said that I hadn’t seen very poor contributions from contractors, and even from staff supplied by partners. However, much of this is related to how well you interview (in the case of contractors) and how well you procure and manage relationships (in the case of agencies and partners). You can have permanent staff who don’t contribute, and I’ve had the privilege of working with fantastic contractors.
When thinking about technical skills, like engineering, SEO or data science, I generally prefer to partner with an agency. It’s easier to ensure and enforce quality from a partner as they have a reputation to protect, and value repeat business and recommendations in a way that is more material than it is for contractors.
In engineering teams, I much prefer the route of ‘team augmentation’. Rather than simply bringing on board resources to deliver a project, in my experience it’s invariably more successful to bring outsourced engineers directly into the teams that they’re working with. Preventing a mentality of ‘us’ (the permanent staff) and ‘them’ (the contractors), is incredibly important in ensuring high quality work.
Tips for outsourcing well
- Make sure you’ve really understood the true costs of hiring your own staff versus using external talent. Be tough with your assumptions about the expected outcome, duration and necessity of the the project.
- Decide whether you want the overhead of working directly with contractors, or would prefer the higher cost but lower responsibility of working with a partner.
- Outsourcing takes time and consideration. You still need to be good at interviewing (contractors) and procurement and supplier management (agencies). They’re skills, just like team management.
- Partners vary in quality and capability. For instance, don’t expect high levels of creativity from a partner that excels in following processes at low cost. Be candid with your expectations and set clear targets for the partner to hit in advance.
- Outsourcing technical tasks generally requires high levels of process hygiene. If you outsource a rubbish process, it will be even worse than keeping it in house.
- Don’t take the myths about costs or quality for granted. They’re often not true.
- Value partners and contractors, and treat them as valuable members of the team. They may not be your direct employees, but they offer great value to your business when cared for.