Cloud modernisation projects fail at a higher rate than any other category of enterprise engineering work. Not because the technology is hard — it is not — but because the scope is consistently underestimated in ways that are predictable and preventable.
The underestimations
1. Data migration is 40% of the work
Every cloud migration scoping document treats data migration as a task. It is a project. Schema differences, data quality issues in the source system, referential integrity violations that were never enforced, encoding problems, and timezone inconsistencies — these are discovered during migration, not before. Budget 40% of your total timeline for data, and you will be closer to reality.
2. The strangler fig pattern takes longer than expected
The strangler fig migration pattern — incrementally replacing a monolith by routing traffic to new services — is the right approach. But it requires maintaining two systems in parallel, keeping them synchronised, and managing the gradual routing shift. Teams consistently underestimate how long 'gradually' takes when production issues in the old system demand immediate attention from the same engineers doing the migration.
3. Networking and security architecture is not infrastructure
VPC design, security groups, IAM policies, service-to-service authentication, secrets management — these are engineering decisions that must be made by senior engineers, not infrastructure specialists. Mistakes here are not bugs; they are security vulnerabilities that survive for years.
Patterns that predict success
- —A senior engineer (not a project manager) owns the migration architecture decision.
- —The team running the migration is the same team that will operate the result. Migrations handed off to a specialist team that then hands back to operations are consistently worse.
- —The first service migrated is boring and non-critical. You learn your migration process on something that doesn't page anyone at 2am if it breaks.
- —There is a clear rollback plan for every migration step before the step starts. Not a general plan — a specific, tested procedure for that service.
- —Observability is migrated before the workloads it monitors.