Case Study

Overcoming Complexities in Large-Scale Cloud Migrations
in Retail

Change Delivery Founders, Perform Partners
Change SquadsCloud Platforms and EngineeringMigration and Modernisation

The Challenge

The Retail Client embarked on a high-stakes legacy system transformation, involving multiple cloud migrations to diverse destinations. The challenge was compounded by gaps in documentation and limited historical knowledge of the system’s environments and configurations. Midway through the project, the client navigated the complexities of separating from its parent company which introduced new layers of complexity.

Recognising the critical need for precise scoping, clear requirements, and seamless collaboration, our Change Squad stepped in to provide support. With a fixed deadline looming and many applications and databases to migrate, we worked closely with the client to define the scope, establish clear requirements, and coordinate efforts across 18 (Europe, Middle East, and Africa) EMEA and Asia and Pacific (APAC) country markets, 10 global functions, and multiple suppliers. Our team ensured a smooth migration process, driving collaboration across stakeholders, mitigating risks, and delivering successful outcomes on time while avoiding costly penalties.

Our Approach

Our approach combined strong management, clear communication, and careful planning to deliver a structured roadmap for this large-scale project. Prioritising collaboration and adaptability, we met project objectives while maintaining the client’s operational continuity. Our Change Squad approach included:

  • Phased planning: The technical roadmap was broken into manageable phases to include infrastructure and business needs and simplified into clear phases to build support and trust. The migrations required the segregation of parts of the system, with some remaining active while others were distributed across five locations. Logical and physical decommissioning of two data centres was completed alongside migrations to ensure efficient transitions.
  • Minimising downtime across global markets: By coordinating across 18 country markets in EMEA and APAC, we minimised downtime to avoid disrupting global trading hours. This required working closely with regional teams and adapting schedules to fit multiple time zones.
  • Strong supplier management: Developing relationships with the client’s existing 10 suppliers, navigating political & cultural barriers, and ensuring open collaboration was crucial to overcoming communication challenges and keeping the project moving forward.
  • Resource flexibility: Recognising the fluid nature of the project, we adapted our team and resources to meet shifting demands and ensure the project remained on track.
  • Minimising risk: By breaking down the migration into smaller, manageable phases, we were able to build momentum and confidence with the client, ensuring that each release was delivered smoothly before moving on to the next.
  • Adaptability and resilience: We remained focused on the end goal, adapting to new challenges and being creative in finding solutions. The experience and flexibility of the team were critical to navigating this complex project, particularly considering the client’s separation from its parent company and the evolving technical and operational demands.
01
02
03
04
05

Looking for project support? Let's talk...

// Function to create HubSpot form with custom styles and scrolling fix function createCustomForm() { // Create the HubSpot form hbspt.forms.create({ region: "na1", portalId: "6882211", formId: "c08eb813-4605-441b-b923-dbfe6422f092", onFormReady: function ($form) { // Define custom styles var customStyles = ` /* Adjusting height and padding for form fields */ .hs-form input[type="text"], .hs-form textarea, .hs-form input[type="email"] { height: 80px; padding-right: 20px; background-color: rgba(32, 48, 49, .05); /* Set background color */ border: none; /* Remove border */ }/* Adjusting height and padding for the "How can we help" textarea */ .hs-form textarea.hs-input { min-height: 257px; padding: 32px 20px; background-color: rgba(32, 48, 49, .05); /* Set background color */ border: none; /* Remove border */ }/* Making the submit button span the full width */ .hs-form .actions input[type="submit"] { width: 100%; background-color: #203031; /* Charleston Green */ color: white; border: none; /* Remove border */ padding: 20px; border-radius: 40px; /* Set border radius */ cursor: pointer; position: relative; /* Set position to relative to position the arrow */ z-index: 1; /* Ensure the button sits above the arrow */ }/* Apply sticky positioning */ .hs-form.sticky { position: sticky; top: 0; z-index: 9999; }/* Placeholder for fixed form position */ .form-placeholder { display: none; } `;// Create a style element var styleElement = document.createElement('style'); styleElement.innerHTML = customStyles;// Insert the style element $form.prepend(styleElement);// Create a placeholder element var placeholder = $('
').css({ height: $form.outerHeight() }); $form.before(placeholder);// Function to handle scrolling function handleScroll() { var formOffset = $form.offset().top; var scrollPos = $(window).scrollTop(); if (scrollPos > formOffset) { $form.addClass('sticky'); placeholder.show(); } else { $form.removeClass('sticky'); placeholder.hide(); } }// Call handleScroll on page load handleScroll();// Add scroll event listener to fix scrolling glitch $(window).on('scroll', handleScroll); } }); }// Call function to create custom form createCustomForm();