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
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.
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.
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.
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.”
For more of our thoughts about the Iron Triangle, see the The Iron Triangle: One Project Constraint to Rule Them All.
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 not, outsourcing may be a good option. See below.
4. Determine the total cost of your FTEs
Calculate the average daily fully burdened cost of your team. This Outsourcing vs. FTEs Workbook factors in bonus, benefits, payroll, recruiting, equipment, vacation and more.
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:
- Consulting engagements can be terminated early with little notice
- Consultants are generally paid for successful delivery, FTEs regardless
- A consulting team will likely have ample experience working together
- It is easier to dictate how, where, and when FTEs work
- FTEs are less likely to have allocation conflicts if the entire team needs to extend their work
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.
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.