Three options, not three price points
When a business decides it needs software built, the choice of who should build it is almost always framed first as a budget question. What can we afford? That framing feels responsible, but it quietly hides the question that actually determines the outcome, which is not what the work costs but what kind of relationship the work needs.
An in-house team, an agency, and individual contractors are not three points on a single price scale. They are three genuinely different arrangements, each well suited to a particular stage of a business and a particular shape of work, and each a poor and sometimes expensive fit for the others. Cost matters, of course. But fit is what decides whether the money was well spent.
What an in-house team is for
Hiring an in-house team makes sense when software is core to what the business does and the work on it is continuous rather than occasional. A permanent team's defining advantage is accumulation. Over months and years it builds deep, compounding knowledge of the product, the codebase, and the particular quirks of the business and its customers.
An in-house team is also immediately available, fully aligned with the company's direction, and able to respond to a problem or an opportunity the same day it appears. There is no statement of work to negotiate, no external priority competing for attention. For a product that the business intends to own and evolve for years, that is exactly the right arrangement.
But the cost of an in-house team is not just salaries, and underestimating that is a common error. A team has to be recruited, which is slow and uncertain. It has to be managed, given direction, and kept genuinely busy with valuable work, and it has to be retained against a competitive market. In-house is the right answer when there is a steady, justified stream of work to feed it, and a slow, expensive mistake when there is not.
What an agency is for
An agency is built for defined projects: work that has a clear beginning, a clear end, and a meaningful scope in between. Building a new product, replacing an aging system, delivering a major capability the business does not yet have. These are the shapes an agency fits.
A good agency brings three things that are hard to assemble quickly in-house. It brings an already-assembled team that has worked together before. It brings a delivery process refined across many projects. And it brings pattern recognition from having built similar things for other businesses, which means fewer expensive lessons learned for the first time on your budget. It can also start in weeks, with no hiring cycle to wait through.
The agency model suits businesses that need serious, substantial work done but do not have, or do not yet want, the permanent team to do it. The one part that genuinely needs planning is the handover. A project only stays valuable after the agency leaves if knowledge, documentation, and a maintainable system are deliberately transferred, rather than walking out the door with the team that built it.
What contractors are for
Individual contractors fit a third and narrower shape: specific, bounded gaps. A particular skill that the business needs for a particular stretch of time. A specialist to handle one tricky area, or an extra pair of experienced hands to get through a known-busy period.
Their great strength is flexibility. A contractor can usually start quickly, costs nothing once the engagement ends, and can be scaled up or down as the need changes. For filling a defined hole or adding temporary capacity, that flexibility is genuinely valuable and hard to match.
What contractors are not suited to is owning something important and long-lived. A contractor is, by definition and by design, temporary. Building the core systems a business depends on around people who are contractually certain to leave concentrates risk in exactly the wrong place: the knowledge of how the most important software works walks out when the contract ends. Contractors extend and support a team extremely well. They are a fragile foundation to build one on.
The mistakes that take a year to show
The reason this choice deserves real thought is that getting it wrong is rarely obvious at the time. The expensive mistakes here are quiet ones, and they take roughly a year to fully reveal themselves. A business hires a permanent team for a burst of work, the burst ends, and the team is now a fixed monthly cost in search of things to justify it, sometimes building features nobody asked for simply to stay busy.
Or a business builds something genuinely critical entirely through contractors, everything works, everyone is pleased, and then eighteen months later the contractors have moved on and nobody remaining actually understands the system the company now depends on. Neither mistake announced itself on day one. Both were decisions about relationship and stage that got made as if they were only decisions about price.
Matching the choice to the stage
The pattern that tends to work follows the stage of the business. Early on, when the need is to build something substantial but there is not yet a steady stream of work to sustain a permanent team, an agency usually fits best. As the software becomes central to the business and the work on it becomes genuinely continuous, an in-house team starts to earn its real cost. Contractors flex either of those models up and down as specific, temporary needs appear.
Many established businesses end up combining all three deliberately: a core in-house team that owns the important systems, an agency engaged for a big push or a project outside the team's depth, and contractors brought in for specific gaps. That is a perfectly healthy arrangement. The error to avoid is choosing on price alone, because the genuinely costly mistakes in building software are almost never about the day rate. They are structural.