When to Bring in Outside Help for Retrieval

Build or buy a retrieval stack is a question about software layers. This is the other buy decision, and it gets far less structured thought: whether to bring in people who have done this before, and if so, for which part.

The pressure to do it is real. A team that has never built retrieval will spend its first two months learning things a specialist knows, and some of those lessons are expensive. The pressure not to is also real, and it is the one that usually turns out to matter: a retrieval system is a thing you own for years, and the failure mode of an outsourced build is not a bad system. It is a working system that nobody left in the building understands.

Sort the work by whether the knowledge has to stay

The useful frame is not “which tasks are hard” — it is which tasks generate knowledge you need permanently.

Work Knowledge stays with you? Buy it?
Corpus curation and ownership Must Never
Deciding what “good” means, and the eval set Must Never
Choosing the architecture Must Advice yes, decision no
Pipeline engineering Should Yes, alongside your people
Index and infrastructure operations Optional Yes, indefinitely
Data extraction from awkward formats No Yes, gladly
The permission model integration Must With your people

The two “never” rows are the ones that get outsourced most often, because they look like the boring parts. They are not. A corpus nobody internal owns rots — that is the failure documented in corpus drift and what it costs you. And an eval set written by someone who does not know your users encodes their guesses about what a good answer looks like, permanently, into every future decision about the system.

The three engagement shapes, and what each actually delivers

Advisory. A few days of a specialist’s time to review a design, price the options, and tell you which of your assumptions are wrong. Cheapest by an order of magnitude, and it is the shape most teams should buy and almost none do. It converts unknown unknowns into known ones before you have committed anything.

Staff augmentation. Contract engineers working inside your team, on your repo, in your review process. Knowledge transfer happens by default because the work happens in front of your people. Slower than a delivery team and better for anything you will own.

Fixed-scope delivery. An outside team builds the thing and hands it over. Fastest to a demo, and the shape with the specific hazard named above. Suitable when the deliverable is genuinely separable — a document extraction pipeline, a migration, a load-test harness — and hazardous when the deliverable is “the system”.

The pattern that works most reliably across all three: buy advisory generously, buy augmentation for the build, buy delivery only for separable components.

The arithmetic that actually matters is not the day rate

Every figure below is a hypothetical placeholder for illustration. Substitute your own.

Suppose a specialist at a hypothetical $1,400 a day and a fully loaded internal engineer at a hypothetical $800 a day. A four-month build with two people looks like this:

Internal team:   2 × 80 days × $800   = $128,000
Contracted:      2 × 80 days × $1,400 = $224,000
Difference:                              $96,000

That difference is the number that gets debated, and it is the least important number on the page. Add the two terms nobody puts in the comparison:

  • Time to working system. If the specialist team ships in four months and yours would take seven, the extra three months of not having the thing has a value. Sometimes it exceeds $96,000 comfortably; sometimes the project has no deadline and it is worth nothing.
  • Who runs it in month five. Retrieval needs permanent fractional attention — quality work, corpus ownership, operations — as costed in the team you need to run retrieval in production. If the answer is “we will figure that out”, you have bought a four-month build and a permanent liability, and the liability is the larger number.

So the comparison to run is not build-cost versus build-cost. It is build cost plus eighteen months of maintenance under each staffing model. Do that and the day rate stops dominating.

The clauses that decide whether it worked

If you contract a build, four things belong in the scope document, and they are cheap to ask for before signing and impossible to obtain afterwards.

  1. A named internal engineer in the loop, reviewing every merge. Not a stakeholder, not a project manager. If nobody internal has read the code, the handover is a slide deck.
  2. The eval set is yours and built with your users. The vendor may operate it; they may not define it. Whoever owns the definition of a good answer owns the system.
  3. A runbook and a genuine handover period with the outside team still reachable while your people operate it. Handover is an activity, not an email.
  4. No component your team cannot host, read, or replace. Including anything the vendor wrote and licenses to you. An unreadable component is a permanent dependency on that relationship.

The recurring signature of a bad engagement is the reverse of all four: a working demo, an impressive architecture diagram, no internal reviewer, an eval set of the vendor’s own questions, and a maintenance contract that is not optional.

When the honest answer is nobody

Two cases where hiring help is the wrong move regardless of budget.

You have not decided what to build. Bringing in a delivery team before the architecture decision means the decision gets made by whoever you hired, in favour of what they build. Do the deciding first — scope a proof of concept that decides something — and buy advisory rather than delivery for that phase.

You cannot fund the maintenance. If there is no plan for the fractional person who owns quality after launch, an outside build accelerates you toward a system that decays without anyone noticing. That is worse than not having it, because you will have told users it works.

The recommendation

Buy advisory almost always; it is the best-value purchase in this whole category. A handful of days spent having your plan criticised by someone who has built this before is the cheapest de-risking available, and it does not create a dependency.

Prefer augmentation over delivery for anything you will own. The premium buys knowledge transfer, which is the actual deliverable. Reserve fixed-scope delivery for genuinely separable work — extraction, migration, harnesses.

Never outsource the corpus or the definition of good. Those two are the durable assets; the pipeline is replaceable. Outsourcing the assets to keep the plumbing in-house is exactly backwards, and it is the common arrangement.

Compare over eighteen months, not over the build. Day-rate arithmetic favours whichever answer you already wanted. Total-cost arithmetic including maintenance staffing usually does not.

The threshold that flips it: bring in help when a specific capability is missing and hiring it permanently is not justified — awkward-format extraction, an index migration, one architecture review. Build internally when the missing capability is one you will need every month for years, because then the contract is not buying you a skill, it is renting you a dependency at a premium. And if you cannot name the internal engineer who will own the result, do not sign anything: the gap you are trying to close with a contract is a staffing gap, and it will still be there when the contract ends.