In-house or consultancy? How to split a cloud migration so your team ends up owning it
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 8 · 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.
Moving to the cloud is partly work you do once and partly work you'll run for years. Pay for experience on the one-time work, and make sure your own team ends up owning the rest, whoever leads at the start.
A cloud migration is a house move, and someone has to live in the house afterwards
A cloud migration moves your company's systems and data out of your own server room or data center and onto a cloud provider like AWS, Azure or Google Cloud. Some of that work happens once. Someone designs the base setup, plans the order things move in and switches each system over. The rest never stops, because someone has to run those systems, keep the bill under control and change them as the business changes. The real decision is who does which part: your own staff, an outside firm, or a mix of the two.
Think of moving an office to a new building. You'd hire movers who've done hundreds of moves for the heavy lifting and the wiring, because you'll only do it once. You wouldn't hire them to run the office afterwards. And if nobody on your staff watched where the cables went, every fault means calling the movers back.
- Business owners planning a cloud move
- CIOs and IT directors
- Platform and infrastructure teams
- Anyone facing a data-center exit
- Anyone choosing a migration partner
Why it matters to you
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.
Get the split wrong and you pay for it later, in one of two ways. An in-house move run by people who also keep production going drifts into year two of "phase one". A partner-led move lands on time, then the partner leaves and nobody in the building can explain how the network was built. Either way the business ends up paying twice for the same migration.
-
01 Sort the work
List every piece of the migration and mark it one-shot or operated. One-shot work happens once. Operated work is what your team will be running for the next decade.
-
02 Pick who leads each piece
Deep domain systems with a long runway go to your own team. Foundations under a hard deadline go to a partner who has built them many times before.
-
03 Pair on everything
No partner engineer works alone. One of your people co-authors each pipeline, module and cutover, so the knowledge stays in your building.
-
04 Hand over runbooks your team has run
Each wave ships with the runbook used for its cutover. It only counts as handed over once your own on-call has executed it.
-
05 Check the exit criteria
Your own people deploy a workload and extend the landing zone with nobody helping, then trace a cost anomaly. Until they can, the partner doesn't get to leave. That test is agreed at kickoff.
-
06 Your team runs it
Later waves and day-to-day running sit with your engineers. The partner reviews for a while and then steps away.
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 outside IT is squeezing the timeline. A data-center lease running out is the classic case, and so is an acquisition or a license cliff. The other good reason is a gap in the foundations, where landing-zone design, network topology, identity integration and security baselines get decided. A team on its first migration makes expensive mistakes there, and everything else ends up built on them. Those mistakes tend to come back 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 them on someone else's estate.
The failure here mirrors the in-house one. The migration finishes on time and the partner leaves. Then 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.
- The systems are deep domain assets outsiders would need months to understand
- The horizon is long, so learning by doing keeps paying off
- There's already a platform team. It can absorb what the migration teaches.
- It goes wrong when people lead it part-time and the day job always wins
- Something outside IT sets the date, like a lease ending. Missing it costs more than the fee.
- The gap is in the foundations: landing zone, network, identity, security baselines
- It's one-shot work the partner has done many times on other estates. You're buying their old mistakes.
- It goes wrong when the partner leaves and the knowledge leaves with them
Be honest about the cost comparison too, because the day rates hide most of it. A partner's fee is visible and lumpy. An in-house migration's cost is spread around: engineer months, the features nobody built in the meantime, and the rework from a team learning on its own estate. Neither is automatically cheaper. What tips it is repetition. For work your team will never do again, paying for someone else's scar tissue is usually the economical choice. 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, and ownership moves over on a schedule written into the contract. We rely on three mechanisms to make that stick.
- Paired delivery. No partner engineer works alone. One of your people co-authors every pipeline, module and cutover, because knowledge moves through commits and slide decks barely carry it.
- Runbook handover as a deliverable. Each wave comes with the runbook your team used for the cutover, and watching doesn't count. It's only accepted once your on-call has executed it.
- Exit criteria agreed at kickoff. Before the engagement can end, your team has to deploy a workload and extend the landing zone on its own. It also has to trace a cost anomaly.
A partner who resists any of this is planning to stay. Ask about all three before you sign, and watch how they answer.
Whichever model you pick, treat the call like code and make it reviewable. Write down where each workload goes and the reason. Then look at it again at each wave boundary, because teams learn fast during a migration.
A wave your partner had to lead in month three is often one your own people can lead in month nine. Migrations fail quietly, one unexamined assumption at a time. A dated log of those calls is the cheapest guard you've got.
# 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 do now
What to do now, by who you are
- Ask which parts of the migration are one-shot and which your team will run for years. If nobody can answer, the plan isn't ready yet.
- Check what's squeezing the timeline. A lease ending, an acquisition or a license cliff is a fair reason to pay for speed.
- Get paired delivery, runbook handover and exit criteria written into the contract. A partner who resists any of them is planning to stay.
- Budget for engineer time on an in-house move as well. It never shows up as an invoice, but you still pay it.
- Staff in-house work as a dedicated team with an end date. A standing committee of people who also run production won't get there.
- Name one of your engineers for every partner engineer. They co-author the pipelines, modules and cutovers together.
- Start a decision log that says which workloads go to which model and why. Date every entry so you can revisit it.
- Agree up front what handed over means for a runbook. Our answer is simple: your on-call has executed it.
- Co-author the landing-zone code with the partner. You should be able to redraw the diagram from memory once they've gone.
- Run a cutover runbook yourself on at least one wave while the partner can still watch. Mistakes are cheap then.
- Practice tracing a cost anomaly back to the workload behind it. It's one of the exit tests, and you'll be doing it for years.
- Compare total cost, and look past the day rates. Count engineer months, features that won't ship and rework while a team learns on its own estate.
- Write the ownership transfer into the contract wave by wave, tied to the exit criteria, so the handover point is agreed up front and doesn't have to be argued for later.
Harden so the next one hurts less
Habits that keep the platform yours
- 01Revisit the split at every wave boundary
Teams learn fast during a migration. A wave your partner had to lead in month three is often one your engineers should lead in month nine, so move it.
- 02Keep the decision log going after go-live
Write down each big platform decision with a date and a reason. When someone asks why the network looks the way it does, the answer is in the log and nobody has to call the partner.
- 03Own the foundations as code
The landing zone, network and identity setup live in your own repository, and your engineers review every change. Then a firewall rule change is a pull request, and nobody has to ask for a quote.
- 04Keep runbooks alive
Your on-call updates a runbook every time they use it for real. A runbook nobody has touched since the partner left is a guess, and you'll find that out at the worst moment.
- 05Grow the platform team while the migration runs
Hire or train the people who'll run the platform while the partner is still around to pair with. Waiting until after handover means they learn during an outage.
- 06Give the cloud bill an owner
Someone in-house should be able to explain every big line on the bill. A cost spike nobody can trace can be an early sign that the handover never really happened.
If it goes wrong
If the migration goes wrong
Migrations fail quietly, one unexamined assumption at a time. Often the first sign is phase one never closing, or a team that can't work without the partner. Go through these phases in order before anyone writes a new plan.
- 01Spot itas soon as you notice
- Compare where the waves actually are against the plan. If phase one is well past its planned end date, call it stalled.
- Ask your engineers to explain the network design and the cost model with the partner out of the room. Gaps there mean the knowledge never moved.
- 02Stabilisefirst two weeks
- Pause new waves until you know what's wrong, unless a hard deadline means you can't. Then pause anything that builds on the suspect foundations, so the rebuild doesn't grow.
- Check that every system already moved has a runbook your on-call can execute. Each one also needs a tested recovery path: restores you've actually run, and a rollback only where data still syncs back to the old system.
- 03Find the bad callfirst month
- Read the decision log, or write one now from memory. Find the call that was wrong: who led, or what you treated as one-shot.
- Get the foundations reviewed: landing zone, network topology, identity and security baselines. Mistakes there tend to surface eighteen months later as re-platforming projects.
- 04Resetbefore the next wave
- If in-house drift is the problem, take the team off production duty and give it an end date.
- If you depend on the partner, add paired delivery and exit criteria now. A second firm can review the work if trust has gone.
- If the foundations are wrong, plan the fix as its own wave before moving anything else onto them.
- 05Learnevery wave boundary
- Update the decision log with what changed and why. Next year someone will ask, and the answer should be written down.
- Hand the next waves to whoever is now ready to lead them, which is often your own team.
What this looks like in real life
What this looks like in real life
- the setup
- A manufacturer's data-center lease ends soon, and nobody on staff has ever designed a landing zone. The board wants a date, and IT is already stretched.
- what happens
- Leading it in-house means learning the foundations under deadline pressure, and those mistakes tend to come back as re-platforming work. Handing everything to a partner hits the date but leaves a team that can't run what was built.
- what to do
- Bring a partner in for the landing zone and the first waves, with your engineers paired on every piece. Agree exit criteria at kickoff, and move the later waves to your own team.
- the setup
- A bank plans to move its core ledger over three years. It already has a platform team, and the ledger is the kind of system outsiders take months to learn.
- what happens
- The bank's own team leads the architecture, which is the right call. The trouble is that the same people also run production, so the day job keeps winning and phase one stays open.
- what to do
- Make it a dedicated team with an end date, off the on-call rota. Use a partner for reviews or specific one-shot pieces, and keep the architecture in-house.
- the setup
- A retailer finishes its migration on time with a partner doing all the work. The contract has no exit criteria, and nobody in-house pairs on anything.
- what happens
- Some months later the team needs a new network segment and an explanation for a cost spike. Nobody in the building can do either, so the partner comes back on hourly rates.
- what to do
- Book a short paired engagement where your engineers make a landing-zone change and trace a cost anomaly while the partner watches. Write exit criteria for it and hold everyone to them.
We work the hybrid way described above. We lead the foundations and the first waves with your engineers paired on every piece, then your team leads the later waves while we review. The exit criteriadefinitionNamed capabilities your team must show before a partner engagement is allowed to end. Extending the landing zone would be one. go into the contract at kickoff, and the engagement ends when your team can meet them.
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.
01Is it cheaper to do a cloud migration ourselves?
It depends on what the work is. A partner's fee shows up on an invoice. An in-house move costs engineer months and features you don't get to build, plus rework while the team learns. For work your team will never do again, paying for someone else's experience is usually the cheaper option.
02Our partner keeps extending the contract. How do we know they'll ever leave?
Ask for paired delivery, a runbook handover your on-call has to execute, and exit criteria agreed at kickoff. Then watch how they react. A partner who resists any of those is planning to stay.
03We're a small company without a platform team. Should we lead the move ourselves?
Be careful. In-house leadership works best when a platform team already exists to absorb what gets learned. Without one, use a partner for the foundations and train or hire the people who'll run the platform while the migration is still going.
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 full-time team 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.