To outsource or not?An 8-step guide for objective decision-makers

In our last article, we spoke about how to determine if your company really needs custom software, or if there are simpler, more cost-effective options to solve your company’s needs.

Be it a startup or enterprise, our prospective clients are often trying to decide whether to allocate (and maybe even hire) full time employees to build their new software project or to outsource the work to a consultancy. When evaluating whether PromptWorks might be a good fit for a prospect on the fence about outsourcing, we encourage them to walk through the steps below and see where they end up.

Answers to these questions are not always straightforward. If after reviewing these steps, you’re still on the fence, you can always drop us a line. We’re happy to chat.

We’ve created an Outsourcing vs. FTEs Workbook we hope you’ll find helpful. Its eight spreadsheets walk through each of the steps below and help you calculate the true cost of outsourcing vs FTEs.

1. Draft your team

Product owner

Somebody (maybe yourself) needs to serve as the central point of contact and authority. Software projects guided by committees or jointly steered with no tie-breaker seldom reach their full potential. The law of scarcity means products always require tradeoffs to be weighed and hard decisions to be made, and we’ve found it's best when one person has the authority to make the final call.

Technical owner

Is someone available in-house to be a technical owner? If not, try to co-opt someone, if only temporarily or in an advisory capacity. Having a technical owner in place before making other hiring, allocation, or outsourcing decisions will help ensure you have a team with the right skillset and experience.

IT champion

Is there an in-house IT person available to champion the project and get computing resources provisioned (if you have centralized IT and can’t use the cloud)? Will your company permit a remote outsourcing partner to access internal resources (e.g. through a firewall)? Will your champion expedite the process to gain access?

If you are without a champ, are in a highly restricted environment, or have a hostile IT department, you may find fewer hurdles bringing in FTEs for which there are established processes for provisioning IT resources.

Engineers

Ask your technical owner to list the skills required to build your project and compare the list to that of the FTEs available to you.

2. Set the constraints for the classic “Iron Triangle” of Project Management

Set your milestones and note which ones are flexible.

It may be too early in the project to thoroughly define the scope and it will likely change, but do the best that you can.

Set a budget, even if you’re focused on FTEs.

Agree with your team on some acceptable level of quality, even if it’s informal. An example might be, “a few bugs and unpolished interfaces are okay, but the system must be highly available.”

3. Assess the time required to hire

Evaluate your team’s ability to execute given their mastery of the requisite skills and your scope, time, and level of quality constraints.

Do you have the expertise available in-house? Enough of it? Is it really the right expertise? If so, skip to the next step.

If you don't have the talent in-house, do you have time to find quality talent?

Hiring software engineers is time consuming. Time-to-hire is only increasing with the number of screening methods employers use. According to a 2015 study by Glassdoor, the bigger the company the longer the hiring process. The same study states the average interview process for a software engineer takes 35 days.

Assuming good candidates enter your hiring funnel on day one, and that’s a big assumption, can you delay the start of your project for a month or more?

Can you spare 45 hours per hire (according to PromptWorks’ own numbers) of your team’s time for the hiring process in addition to HR’s time?

If you plan to hire, factor in the cost of your time and your team’s time spent sourcing, evaluating, interviewing, and onboarding candidates.

5. Estimate the time required to complete your project

Do an estimation exercise with your team or with the technical owner if the team has yet to be hired to determine just how many days of your team’s time this project will take. Be sure to respect the scope, milestone, and quality constraints you defined for the Iron Triangle.

For the total estimated cost of the project, simply multiply the amount of time required of your team by their daily fully burdened cost.

How does the estimated cost align with the budget constraint?

6. Compare the total time and cost of FTEs to the that of several consultancies

Identify several consultancies you would consider working with.

Share your Iron Triangle constraints with them, providing as much detail as possible about the scope of work and ask them for proposals with estimates. You may choose to share a budget range. Even a broad range will help the consultants to make better recommendations and more informed estimate.

The more broken down the estimate they provide, the better. This should be no problem for a consultancy if they employ an estimation process with any rigor.

Ensure each estimation respects the milestone and quality constraints. You don’t want to pay for a big ball of mud that has no code design, tests, or documentation.

The scope will likely vary between estimates. Looking at the consultancies’ estimate breakdowns, try to find the total estimated cost for the same scope of work your FTEs used for estimation. You’ll want to compare apples to apples.

Can you rule out any consultancies because they cannot satisfy all constraints? E.g., a consultancy cannot allocate enough people soon enough to satisfy your milestone constraint.

How do the remaining consultancies compare in cost to your team? How about time?

7. Weigh the risks

How does the risk of hiring compare to that of outsourcing?

Estimated time and cost are two key factors in deciding to outsource or not, but you ought to consider a few others.

Let’s acknowledge that these common situations may arise:

A key person leaves (bus factor)

The scope of the project expands unexpectedly

There’s a cash flow interruption

The timeline needs to be accelerated

The budget gets slashed

The team falls behind due to distractions, external delays, under-estimation, unanticipated technical complications, or poor team dynamics

Now consider some benefits of FTEs and consultants and how they mitigate the risk of the above situations:

To objectively compare options, assign some value to the risks you see. We suggest a time and money value for each risk for both FTEs and consultants.

In the Outsourcing vs. FTEs Workbook mentioned above, we’ve provided more common situations, more benefits, and a model for ascribing value to risks by assigning each a likelihood and a coefficient.

8. Make a more informed, objective decision

Adjust the estimated cost and time using the values you assigned to foreseen risks.

How do the consultants’ risk-adjusted cost and time estimates stack up to FTEs’?

If the best option is not evident, evaluate using a combination of consulting and in-house developers, especially for highly complex projects.

Starting with consultants and transitioning to an in-house team gets a project started quickly, taking the pressure off of the hiring process allowing you to make more carefully considered hiring decisions. You can also get the benefit of having seasoned, senior engineers making the initial architecture decisions.

Starting in-house and transitioning to or augmenting your team with consultants will help your team scale quickly or solve difficult technical problems with some hard-to-find expertise.

Next steps

If you ultimately decide that consultants are the way to go for your project—whether to rely on them entirely or to use a combination of FTEs and consultants—then you’ll need to start considering how and where to find the best consultants to fit your needs. But, sometimes, it’s more important to know where not to look for consultants. Look out for our next article in this series addressing just that, and, as always, if there’s a project your company is looking for help with, shoot us an email and we’ll be happy to give you some advice.

If you haven't yet, you might want to read Part 1 of this series where we examine how to decide whether you should build custom software or use something off-the-shelf.