In-house or consultancy? An honest framework for cloud migration
Which parts of a migration your own team should lead, when to bring a partner in, and why we usually end up with a mix. Each model fails in its own way.
part 1 of 3 · Cloud calls you'll have to makethe ideaBuy experience for one-shot work, and keep anything you will operate in-house.
after reading, you can- Sort migration work into one-shot tasks you'd buy in and operated work that has to end up with your own team.
- Spot how each model tends to go wrong. In-house work drifts when done part-time, and a partner can leave with the knowledge.
- Write exit criteria, paired delivery and runbook handover into a migration contract so ownership actually transfers.
Consultancies have an obvious reason to tell you that you need a consultancy, so take this from one: some migrations should be led by your own engineers, and a partner who can't name those cases is selling to you. In-house versus partner is the wrong way to frame it. Ask which parts of this migration are one-shot and which parts you'll operate for a decade.
That split between one-shot and operated work is really the whole framework. Work you do once (landing-zone build, wavedefinitionOne batch of workloads moved together. Large migrations run as a series of these, so each one can be planned, cut over and reviewed on its own. planning, the data-center exit itself) rewards someone who has done it twenty times. Work you do forever (running the workloads, evolving the platform, owning the cost model) has to end up in-house, whoever starts it. Get the split wrong and each model fails in its own predictable way.
When your own team should lead
In-house leadership makes sense when a few things line up. The systems being moved are deep domain assets that outsiders would spend months just understanding. The horizon is long, so learning by doing pays compound interest. And a platform team already exists to absorb that learning. A bank migrating its core ledger over three years shouldn't hand the architecture to visitors; the knowledge it produces is worth more than the schedule slip. Where this goes wrong is pace. In-house migrations led part-time by people who also run production drift into year two of "phase one," because the day job always wins. If you lead in-house, staff it as a dedicated team with an end date. A standing committee won't get there.
When a partner earns its fee
Bring a partner in when something external is squeezing the timeline (a data-center lease expiring, an acquisition, a license cliff), or when the skills gap sits in the foundations: landing-zone design, network topology, identity integration, security baselines. Those are the one-shot artifacts where a team on its first migration makes expensive, load-bearing mistakes, and they tend to surface eighteen months later as re-platformingdefinitionMigrating a workload a second time, to a different platform or design. Often that's to fix foundation mistakes from the first time around. projects. A firm that has built forty landing zones has already made those mistakes on someone else's estate. The failure here is the mirror image of the in-house one. The migration lands on time, the partner leaves, and nobody in the building can explain the network design or unpick the cost model. You hit the deadline, then rent your own platform back as consultancy hours.
Be honest about the cost comparison, too, because it is less obvious than the day rates suggest. A partner's fee is visible and lumpy; an in-house migration's cost is diffuse: engineer months, opportunity cost of the features not shipped, and the rework rate of a team learning on its own estate. Neither is automatically cheaper. What tips the calculation is repetition: for work your team will never do again, paying for someone else's scar tissue is usually the economical choice, not the extravagant one. For work your team will repeat every quarter, the partner's fee buys speed once and nothing after.
If your engineers can't redraw the landing-zone diagram from memory after the partner leaves, you bought a dependency and called it a migration.
The hybrid that usually wins
Most successful migrations we see use an augmentation model, ours included. The partner leads the one-shot foundations and the first waves, then your engineers lead the later waves while the partner reviews. Ownership transfers on a schedule written into the contract. We rely on three mechanisms to make that stick. Paired delivery means no partner engineer works alone. One of your people co-authors every pipeline and module, and every cutoverdefinitionThe moment traffic and users switch from the old system to the migrated one. as well, because knowledge transfers through commits and slide decks barely move it. The runbookdefinitionA step-by-step procedure, written down, for an operational job such as a cutover. An on-call engineer should be able to follow it. handover is a deliverable in its own right: each wave ships with the runbook your team used for the cutover (watching doesn't count), and it's only accepted once your on-call has executed it. Exit criteriadefinitionNamed capabilities your team must show before a partner engagement is allowed to end. Extending the landing zone would be one. are agreed at kickoff. Your team has to show it can deploy a workload and extend the landing zonedefinitionThe base cloud setup that workloads move into: accounts, network layout, identity and security rules, built before migration waves start., and trace a cost anomaly, before the engagement is allowed to end. A partner who resists any of this is planning to stay.
Whichever model you pick, apply the same discipline you would to the code: make the decision reviewable. Write down which workloads go to which model and why, and revisit the split at each wave boundary. Teams learn fast during a migration, and a wave your partner had to lead in month three is often one your engineers should lead in month nine. Migrations fail quietly, one unexamined assumption at a time; a decision log with dates is the cheapest instrument you can carry.
# score your migration against each row deep_domain_systems + long_horizon: in-house leads hard_deadline | landing-zone_gap: partner leads foundations one-shot_work: buy experience // done 20× elsewhere operated_work: must end in-house in-house_risk: part-time drift (year two of phase one) partner_risk: knowledge leaves in the taxi ✓ paired delivery · ✓ runbook handover · ✓ exit criteria at kickoff
What to take from this
- 01
Split the work: pay for experience on the one-shot foundations, and grow your own people for anything you'll be running for years.
- 02
In-house needs a dedicated team with an end date, and partners need contractual exit criteria. Each model fails without its guardrail.
- 03
Pair on everything. Knowledge travels in commits and runbooks your team has run, and documentation handoffs don't carry it.
Three questions, about a minute
Pick an answer and we'll tell you if it's right, and why it is or isn't. The score stays in this browser.
-
Q1The data-center lease expires soon. Nobody on staff has designed a landing zone. Which approach fits best?
show the answer
C. Bring in a partner for the foundations, with paired delivery and exit criteria A hard deadline and no one in-house who has built foundations: that's when a partner is worth paying. Pair your people with theirs and agree exit criteria, so the knowledge doesn't walk out with them.
-
Q2Three years to move a bank's core ledger, and a platform team already in place. Who should lead the architecture?
show the answer
B. The bank's own dedicated team, staffed with an end date Deep domain systems, years of runway and a platform team already in place all point to leading it yourselves. Make it a dedicated team, though. Part-time leads drift.
-
Q3Your team sat through a walkthrough of the partner's cutover runbook. At what point should it actually count as handed over?
show the answer
D. Once your on-call has executed it themselves A walkthrough only shows you the runbook. Handover happens when your own on-call has executed it, because the knowledge lives in commits and runbooks your team has actually used.