In 2022, a long-time Sparkbox client was reaching the end-of-life date for a major tech platform. So they asked us to perform an extensive site migration. And for better or worse, it also needed to be conducted during a period of significant organizational change and churn. This is a real challenge for any organization, and we love a challenge. We were happy to get involved.
To tackle this project, we needed to be nimble, consultative thinkers while not being afraid of difficult conversations. This was a marathon, not a sprint.
Migrating to a New CMS
With more than $2 billion in revenue closely tied to their technology platform, this client had thousands of pages on Drupal 7 that had to be moved off the platform to Contentful (a Headless CMS) within a year. An update to Drupal 10 would have been a tough undertaking. But migrating to a new CMS is significantly more complicated as each system has its own unique way of structuring and managing content which makes a one-to-one translation difficult—especially of this magnitude.
Our initial process—to borrow from a recent article by Dustin Whisman that covered this very migration—looked like this:
- Audit pages from the old system
- Categorize pages based on the old CMS classification system
- Identify components that needed to be built for the new system
- Design content models for the new components and set them up in the new CMS
- Build components for the new system that matched the content models
- Write migration scripts that turn data from the old CMS into entries in the new one
- Test the migration scripts against a test environment
- Run the migration scripts against the main environment
- Go through QA testing before making the pages go live
While it was thorough and successful, it was slow. We quickly realized it wasn’t going to get us where we needed to go in time with a looming deadline.
Iterating on the Approach
Sparkbox talks a lot about an iterative approach to engagements. We make the best decisions based on the information we have, but we’re never locked into a rigid process—particularly when we can find a better way to deliver for our clients. In this case, we huddled with the client and came up with a new strategy. We decided to break up the project into a series of overlapping, consecutive MVPs.
The new process looked like this:
Write a script that:
a. Fetches and parses the HTML for a given page
b. Fetches any external resources used by the page
c. Writes those external resources to disc
d. Updates URLs in HTML to point to the new locations of those resources
e. Writes the HTML files to disc
Run the script against the pages we needed to migrate
- Copy the resulting files to the public folder of our Next.js application
- Adjust our redirects and configuration to serve those files correctly
This way of “copying and pasting” was by no means a silver bullet, but it significantly reduced migration time per page. And once the tech side of things had been figured out, the Sparkbox team was able to subdivide the site into “content sections” and treat each one as an individual MVP with unique needs, goals, and outcomes. We were able to find individual efficiencies for each section—and subsequently the entire site—in the time provided.
“Since we were dealing with different stakeholders and different needs—different content section needs—we did a mini ‘discovery’ on each section. We needed to understand how could we work with each team to get them what they need.”
—Natalie Lestini, Project Manager
Continuing to Make Improvements
Once the initial goal was met, Sparkbox triaged sections and pages that had been “copied and pasted” during the migration. The client identified targets and Sparkbox, now working without the looming and continuously changing deadline of Drupal 7 end of life, was able to more thoroughly integrate the data into Contentful.
Sparkbox was also able to deliver organizational benefits beyond the initial scope. Throughout the engagement—but particularly after the pivot to the MVP strategy—the migration team sought the help of a Sparkbox user interface team that was working with the client on a concurrent engagement. Members of the UI team were able to contribute by identifying opportunities for reuse (completed work, components, etc.). Transparency helped us to ensure that nobody was reinventing any wheels.
What started as a small team-to-team collaboration grew into an integrated, multidisciplinary team including both Sparkboxers and client teams. Working this way allowed us to be much more nimble while constantly evaluating and prioritizing to ensure that we were focused, along with the client team, on the most important work. This client allowed us the opportunity to work as true strategic partners, and the outcomes are better for it.