If you’re a business owner or manager who’s about to undertake a software project, you have a lot of decisions in front of you. One of the first ones you’ll make is how to staff the project – do you hire employees or contract to a firm?
When confronting this question, the first dimension to consider is the size of your company, by revenues, funding, or existing headcount. Other dimensions (core competencies, long-term prospects, strategic-versus-tactical, etc.) are usually a function of this first one.
For early-stage start-ups (angel or seed funding only), the question is purely one of execution speed versus cost.
Typically, cash is king, and the start-up opts to recruit a technical co-founder and/or 1-2 senior engineers for somewhere between 1/2 and 2/3 of market salaries plus equity. This is the right decision when time is not of the essence and the founders are reasonably assured of picking excellent technical employees out of a crowd (e.g., when they have deep tech connections or have advisors feeding them highly qualified candidates).
Contracting can make sense for start-ups where timelines are short, the budget is big enough, and/or the deliverables are well understood (NOTE: this last one is incredibly rare). In these cases, the advantage of moving quickly with an established team can outweigh the higher cost.
Small companies and late-stage start-ups
For small companies or start-ups with significant funding, real deadlines (from investors, customers, or competitors), and/or one or more technical employees already on board, the decision is less straightforward. Again, it comes down to speed versus cost, but now there’s the long-term to consider, since you’re building something you have higher confidence will be around in 1, 3, or 10 years.
Hiring takes time, and the more people you need to hire, the greater your chance of “missing” – either hiring the wrong person or not being able to hire in time. When you contract the work, you trade cash up front to eliminate the variable of hiring time. Don’t underestimate how long it takes to hire the right people! Opportunity cost is a silent killer of businesses.
On the other hand, you may see a long-term advantage to having employees on board. If you’re confident of your need for on-going development at a pace that will utilize your new employees at better than 80% for the foreseeable future, it makes sense to hire. It will take longer to get started, but the costs over the long-run will be lower.
Medium and large businesses
For companies with substantial revenue and established products or services, the decision can be more formulaic. Does a software initiative represent a strategic advantage for the company, now or in the future? What are our core competencies? Are we testing the market or executing on a confirmed hypothesis? Is time working against us?
Generally, when a company has the answers to these questions, the contract-versus-hiring question is already answered. For example:
- If the initiative is strategic, you should lean towards hiring. If it’s a one-off internal tool or an addendum to an existing business line, you should lean towards contracting.
- If you already have core competencies in both software and in the type of product being developed, you should lean towards hiring more of the people you already have doing those things. Otherwise, you should lean towards contracting.
- If you’re testing a market for its reception to a new product, you should lean towards contracting. If you’re confident in the market and are starting a long-term effort to capture share, you should lean towards hiring.
- If time is critical, you should lean towards contracting. Otherwise, you might be able to afford to go through months of hiring and should lean that direction.
The answers to these questions are often mixed, and you’ll need to weigh the balance to decide which way to go. This is where a strong technical leader is critical.