Agency or one independent engineer: the honest comparison
Image borrowed from unsplash.com.
Almost everyone who asks me this frames it as a cost question. The agency quoted $60,000, the freelancer quoted $25,000, and the question is whether the freelancer is a bargain or a warning sign.
It is the wrong comparison. Cost matters, obviously. But the two options do not fail in the same way, and that is the thing you are really picking between: which kind of failure you would rather live with. Once you see it that way, the decision stops hanging on which quote is smaller.
I am an independent engineer, so one of these answers pays me. Worth knowing before you read the rest.
So I have stuck to things you can check. Every figure here is sourced. The one statistic that would have helped me most is the one I threw out. The cases where an agency is the better answer are set out in full. You should finish this knowing what you are choosing, not knowing what I would prefer.
Where the rate actually goes
Start with the thing nobody explains: why an agency developer costs a multiple of what the same developer costs as an employee.
It is not greed, and it is mostly not profit. It is arithmetic about time.
A developer on $75,000 a year is available for about 2,080 working hours. They will not bill 2,080 hours. They take holiday, they get ill, they sit in internal meetings, they write timesheets, they help with a pitch that does not land, they spend a week between projects with nothing assigned.
What is left is the billable hours. Agencies plan for that to land between 70% and 80% of the total. Asana's benchmark data puts software and IT services at 75–80%, and most agency finance guidance lands in the same range.
Call it 1,500 billable hours. Now the arithmetic does something uncomfortable:
$75,000 ÷ 1,500 hours = $50 an hour, before anything else at all.
That is the salary alone. It does not include employer taxes, pension, laptop, software licences, insurance, office, or recruitment fees. And it does not include the people at the agency who bill nothing — the account manager, the project manager, the finance person, the sales team. Their salaries come out of the same place: the hours the developers do bill.
So the 500 unbilled hours are not free. They are paid for by the 1,500 billed ones. That is the single most useful thing to understand about an agency rate, and it explains the shape of the invoice better than any argument about value.
None of this is a scandal. It is what it costs to run a company that can survive losing a client. But it does mean one thing plainly: part of every hour you buy pays for the agency, not for your software.
Why I will not use the statistic everyone quotes
If you search this question you will hit the Standish Group's CHAOS report within about two clicks. The numbers are irresistible. Roughly 31% of software projects succeed. About half are "challenged" and the rest fail outright. Small projects succeed around 90% of the time. Large ones manage under 10%.
That last pair would be a gift to someone arguing my side of this. I am not going to lean on it, because the report does not hold up.
CHAOS has been picked apart in the peer-reviewed literature for twenty years. Jørgensen and Moløkken's review in Communications of the ACM asked directly whether it describes a software crisis at all. A follow-up in IEEE Software, "The Rise and Fall of the Chaos Report Figures", concluded the numbers were exaggerated.
The objections are basic ones. The sampling method is not disclosed. The rule for which projects got included is not published. And "success" means nothing more than hitting the original estimates of cost, time and scope.
Think about what that definition does. A project that shipped something better than planned, two weeks late, counts as a failure. A project that delivered exactly what was specified, when the specification was wrong, counts as a success.
I mention it for two reasons. One, you will see those numbers quoted at you by somebody selling something, and you should know they are soft. Two, if I quoted a statistic that flattered me and it turned out to be junk, that would tell you something about how carefully I check things generally.
What holds up without Standish
Strip out the contested survey data and one thing survives, because it is not a survey finding at all. It is arithmetic.
Every person added to a project adds communication paths, and they multiply rather than add. With n people involved the number of two-way channels is n(n−1)/2:
- You and one engineer: 1 channel
- You, an account manager and a developer: 3 channels
- You, an account manager, a project manager and two developers: 10 channels
Ten channels is not ten times the talking. It is ten places where a detail can be passed on slightly wrong. Everyone has watched this happen: you explain something clearly to the account manager, the account manager writes a summary, the project manager turns the summary into tickets, and what arrives three weeks later is a reasonable interpretation of a reasonable interpretation of what you said.
That is the real reason smaller efforts go better, and it does not need a disputed report to support it. It is why the honest version of my pitch is not "I am better than an agency" but "there is less distance between you and the work."
The risk you are taking with a freelancer
Now the other side, because a comparison that only lists the other option's problems is an advertisement.
Hiring one engineer concentrates every risk into one human being. They can get ill in week three. They can take a job. They can turn out to be worse than they seemed. They can simply stop replying — I have taken over from developers who did exactly that, and the client's position was genuinely awful: no access to anything, no documentation, and a system earning money that nobody could change.
An agency is, among other things, an insurance policy against that. If your developer leaves, someone else picks it up. You may not even find out. That is a real thing to buy and it is worth real money.
The mitigations exist, and you should demand them of anyone independent, including me. Everything in your name from day one — domain, hosting, code repository, accounts. Documentation written as the work happens rather than promised at the end. Nothing that only runs on one laptop. If a freelancer cannot tell you what happens to your business the week after they are hit by a bus, that is the answer to your question. Mine is on the services page, and it is a fair thing to ask about before you commit to anything.
The risk you are taking with an agency
The agency risk is quieter, and I think it is the one people underestimate.
You are not buying a person. You are buying a slot, and the person filling it changes.
The developer who spent four months learning why your pricing rules are strange gets moved to another account. Someone new starts from nothing. And nobody tells you it happened, because the account manager is the same as last month, and continuity is exactly what you thought you were paying for.
The churn is not hypothetical. The US Bureau of Labor Statistics puts median tenure across all wage and salary workers at 3.9 years as of January 2024, down from 4.1 two years earlier. Software is commonly reported to run shorter still — figures around two years get quoted a lot, though I would treat those with the same suspicion I applied to CHAOS. BLS publishes no developer-specific number, and most of the two-year claims trace back to surveys rather than payroll data.
The direction is not really in doubt, though. Over a two-year relationship, the chance that the person who understands your system is still the person working on it is not high. With an agency you have bought a process that survives that. What you have not bought is anyone who remembers why the decision was made.
That is the part I would point at in my own work. Both projects I have written up were one engineer on one system for years — five, in one case — and the value in year four was mostly knowing why year two had gone the way it did.
When an agency is genuinely the right answer
There are cases where I will tell you to go to an agency, and this is not modesty.
When you need several specialisms at once
A brand identity, a mobile app, a web platform and a paid-media campaign, all in the same quarter. One person cannot do that, and a person who claims they can is telling you something.
When you have a hard external deadline and no slack
A trade show, a regulatory date, a funding round. Capacity you can scale is worth paying for, and one engineer with flu is a single point of failure you cannot absorb.
When the work is genuinely large
Past a certain size, coordination becomes a job in itself. Paying someone to do it full time stops being overhead and starts being the thing that saves you.
When your own governance requires it
Some boards, insurers and procurement processes will not sign off on a sole supplier. That is a constraint, not a preference, and arguing with it is a waste of everybody's time.
What to ask, either way
The questions that actually separate a good outcome from a bad one are the same for both:
- Who writes the code, and will I meet them? If the people in the pitch are not the people on the work, ask who is.
- What do I own on the last day? Domain, repository, hosting accounts, analytics, everything. Get the answer in writing before money moves.
- What happens when the person who knows this leaves? Both models have an answer. Neither answer should be "that will not happen."
- What does the first deliverable look like, and when? If nothing is visible for two months, that is a warning regardless of who you hired.
- What is explicitly not included? A fixed price only stays fixed if both sides can see the edges — Zero to One states its exclusions on the page for exactly that reason.
It would be a poor article that asked you to interrogate everyone but me. My answers to all five are on the questions page — ownership, what happens if I am unavailable, how the work runs, and what I will not take on.
The two columns, side by side
Everything above, in one place. Some of these rows favour an agency and some favour me; that is the point.
| An agency | One independent engineer | |
|---|---|---|
| Who you talk to | Usually an account manager | The person writing the code |
| Who writes it | Whoever is assigned that month | The person you hired |
| Communication paths | Ten, across a team of five | One |
| If they leave | Someone else picks it up, often without telling you | The work stops until you find someone |
| If they are ill | Absorbed by the team | Your dates move |
| Several disciplines at once | Yes — brand, app, campaign | No |
| Adding people mid-project | Yes | No |
| Who remembers why a decision was made | The process, not a person | The person |
| What the rate covers | The work, plus the hours nobody bills | The work |
| Best when | The job is large, urgent, or many-sided | One system has to be right and stay right |
The short version
You are not choosing between expensive and cheap. You are choosing between paying for coordination and continuity, or paying for directness and accepting that it rests on one person.
If your project is large, spans several disciplines, or has a deadline you cannot move, buy the coordination and go with an agency. If it is one system that has to be right and stay right, protect the distance between you and the person building it and go with a freelancer. Every layer you add is one more place where something gets passed on slightly wrong.
Either way, ask the five questions mentioned above. The people who answer them plainly are the ones to hire.