Artwork for podcast Tag1 Team Talks | The Tag1 Consulting Podcast
Scary Drupal Migrations with Janez Urevc - Tag1 Team Talk miniseries
Episode 10331st October 2023 • Tag1 Team Talks | The Tag1 Consulting Podcast • Tag1 Consulting, Inc.
00:00:00 00:22:20

Share Episode

Shownotes

In this episode of Tag1 Team Talk, co-host Janez Urevc discusses a challenging migration project from his past. Janez shares his experience of migrating a media organization from a proprietary internally developed CMS to Drupal. The organization faced resistance from its existing development team, who were emotionally attached to their custom CMS.

His migration story serves as a valuable lesson on the importance of not only executing technical migrations successfully but also managing user adoption and handling challenges related to team dynamics and leadership.

The episode highlights the significance of planning, communication, and a well-structured approach to ensure the success of migration projects. The lessons learned from this experience can benefit organizations planning similar transitions.

Stay tuned for more insightful discussions on migration, Drupal, and other topics in the Tag1 Team Talk series.

Transcripts

Speaker:

Welcome to Tag1 Team Talks, brought to you by Tag1 Consulting.

Speaker:

I'm Michael Meyers, the Managing Director at Tag1.

Speaker:

We have two special Halloween episodes for you.

Speaker:

In both episodes, we're going to be telling scary platform migration stories.

Speaker:

Cautionary tales to learn from based on experiences we've

Speaker:

all had prior to joining Tag1.

Speaker:

In today's episode, episode 2, I'm going to be chatting with Janez Urevc,

Speaker:

a top contributor to Drupal, the open source content management system.

Speaker:

Among his many contributions, Janez is the multimedia initiative owner

Speaker:

who's been appointed by the founder of Drupal to oversee the design and

Speaker:

implementation of the next generation of Drupal's multimedia capabilities.

Speaker:

He's also a performance and scalability expert who's done many talks on the topic.

Speaker:

He's also the product owner for Gander, a new open source automated performance

Speaker:

testing system that the Google Chrome team and Tag1 have been collaborating on.

Speaker:

Gander is now a part of the Drupal core development workflow and will

Speaker:

be there to help ensure that Drupal's performance gets even better over time.

Speaker:

And as it's open source, it's also something that your organization

Speaker:

can run to ensure that your sites are as fast as possible.

Speaker:

Keep an eye out for the blog posts that are coming up and the team talks

Speaker:

on Gander in the next couple of weeks.

Speaker:

When you've been part of a lot of large scale migrations like Janez,

Speaker:

you've undoubtedly run into some challenging situations and our hopes

Speaker:

that in sharing some of these stories and things that went awry and the

Speaker:

challenges that we faced will help you better navigate your platform migration.

Speaker:

Today, Janez is going to share the human side of migrations, the challenges that

Speaker:

organizations face when it comes to navigating politics and staffing issues

Speaker:

and other people oriented issues that you often face when changing tech stacks.

Speaker:

As a company, there's a lot that you need to transition beyond just

Speaker:

completing your tech transition to have a successful migration.

Speaker:

And yet the human side of things is not a topic that we often hear

Speaker:

about when it comes to migrations.

Speaker:

So I'm really excited about this talk.

Speaker:

Please remember to keep an eye out for episode one in our Halloween series with

Speaker:

Benji Fisher, one of the maintainers of Drupal's migrate capabilities, where

Speaker:

he shares two scary stories about the technical challenges that he's faced.

Speaker:

I'm joined today by Janez Urevc, who is my co host for the Tag1 Team Talk series.

Speaker:

Janez, welcome and thank you for joining me.

Speaker:

Glad to be here.

Speaker:

Thank you for having me.

Speaker:

So we're covering scary stories from our lives before Tag1 and we're

Speaker:

going to anonymize, we're not going to cover, we're not going to say who

Speaker:

these organizations are specifically.

Speaker:

Um, but you know, you were the, Drupal Multimedia

Speaker:

Initiative owner for many years.

Speaker:

And you work with a lot of media companies.

Speaker:

Could you just sort of set the stage for your scary story.

Speaker:

So, um, when I, when I finished my studies, I had to feel, and I had my first

Speaker:

child on the way, so I had to figure out what to do and, you know, based on a few,

Speaker:

um, unplanned things, I ended up doing web development and initially I started.

Speaker:

Working, or I was collaborating with a company that used their

Speaker:

own CMS internally built.

Speaker:

But I've always been a huge proponent of open source, even during my studies.

Speaker:

And I also knew Drupal at the time.

Speaker:

And I was trying to convince that company to adopt Drupal and open

Speaker:

source in general, and they didn't really want to do it because they

Speaker:

were selling licenses for their CMS.

Speaker:

So the first opportunity that I got to work on open source web technologies,

Speaker:

I took that opportunity, like gladly.

Speaker:

And that was My first exporter to media because that company

Speaker:

where this opportunity arose was in the media industry.

Speaker:

And then through that, I became interested in media and then naturally

Speaker:

started contributing, ended up leading the media initiative for Drupal 8.

Speaker:

And, because of my involvement in Drupal media and media industry in general,

Speaker:

then later in my career ended up having a lot of clients from this industry.

Speaker:

And I'm sure you've been involved in numerous migrations.

Speaker:

I'm curious, are they, largely, you know, uh, older versions of Drupal

Speaker:

to newer versions of Drupal, uh, other platforms to Drupal, a mix?

Speaker:

Migration, the migrations that I've done throughout my career were for the most

Speaker:

part from some other system to Drupal.

Speaker:

We migrated media portals from other systems to Drupal 7 and then later I did

Speaker:

a lot of migrations to Drupal 8 and 9.

Speaker:

I've actually not done a lot of migrations from earlier versions of

Speaker:

Drupal to newer versions of Drupal, but I have a lot of experience in migrating

Speaker:

from third party legacy systems.

Speaker:

And to add on that for all these migrations we always use Migrate

Speaker:

module migrate tooling that we have in core now, when we were doing it into

Speaker:

Drupal seven, it was not yet in core.

Speaker:

It was in contrib space but very similar.

Speaker:

And my experience with migrate was that it's really solid.

Speaker:

Really featureful really reliable and even when, because now if you are, if

Speaker:

you're migrating from an older version to Drupal to a newer version of Drupal,

Speaker:

in theory, you have most of the plugins, most of the features that you need

Speaker:

already built into Migrate, because this is the prime citizen type of migration.

Speaker:

But even if you're migrating from a legacy system, that's in theory, no

Speaker:

other Drupal developer ever heard about Migrate still allows you to execute

Speaker:

these migrations with hardly any need for custom code, which I think tells a lot

Speaker:

about how good how solid this system is.

Speaker:

And yes, of course, I mean, of there are things that you have

Speaker:

to do custom, but those are.

Speaker:

Mostly my experience were mostly related to the way content was

Speaker:

created, not the way those third party legacy systems stored the data.

Speaker:

in general, I was always happy with Migrate.

Speaker:

It's a really nice tool, and I was very excited when, when we decided

Speaker:

that it will become part of Core.

Speaker:

Yeah, we'll have to do, uh, I mean, we're doing a whole series on the, the migrate

Speaker:

subsystem and migrating to Drupal in general and various different aspects.

Speaker:

Um, one of the things I love about your scary story, a lot of what we've

Speaker:

covered in our other scary stories are, uh, technical fails or challenges

Speaker:

that organizations have faced.

Speaker:

Um, but you're going to give us a different perspective today and cover

Speaker:

a really important part of migrations.

Speaker:

And that is.

Speaker:

User adoptions and end users and you know, in order for a migration to be

Speaker:

successful, you don't only need to technically execute it, but you need to

Speaker:

facilitate success of the new application and the challenges that come with it.

Speaker:

And a lot of those challenges can be people related.

Speaker:

It was my experience.

Speaker:

So a little bit of back story.

Speaker:

I've been involved in a migration from third party CMS.

Speaker:

into Drupal, and the specific of this case was that this third party CMS

Speaker:

was not like a commercial product or some other open source CMS, but it

Speaker:

was a proprietary internally developed CMS that a dedicated development

Speaker:

team inside the organization built.

Speaker:

And you can imagine that this sets the stage for some pretty strong

Speaker:

opinions and emotions about things.

Speaker:

Cause you have this team there which was not huge, but still has been with

Speaker:

the organization for quite a while.

Speaker:

And they love things that they built and it was working, but then the key decision

Speaker:

makers realized that they simply cannot achieve the pace of innovation that they

Speaker:

require in order to execute what they like to call the digital transition.

Speaker:

This is one of these media organizations that are like 50, 60 years old newspapers.

Speaker:

Used to print newspapers on a daily or weekly basis or what have you.

Speaker:

And now they were faced with this new reality where they had

Speaker:

to be present on the internets.

Speaker:

Or, and on other digital channels or delivery channels as well.

Speaker:

And they were figuring out how to do it.

Speaker:

And pretty quickly, they realized that this internally developed CMS while in

Speaker:

theory, they should be able to add any functionality that they needed to it.

Speaker:

The team was too small for that to be realistic.

Speaker:

So they started looking into other solutions they pretty quickly

Speaker:

decided that they want to have something that is open source.

Speaker:

Drupal was one of the, um, candidates.

Speaker:

and then we, did a pilot project with Drupal and they were really happy with it.

Speaker:

And they decided, okay, we're going with Drupal.

Speaker:

We're going to replace like all usages of this internally developed CMS, uh,

Speaker:

incrementally because they had multiple sites, um, and, start using Drupal from

Speaker:

their own because they, they understood that the pace of innovation that we have

Speaker:

in, in Drupal community is, uncomparable to what they could achieve internally.

Speaker:

The problem was that.

Speaker:

This decision was, obviously, was communicated with the internal team.

Speaker:

But it either wasn't, either the internal team didn't feel that they

Speaker:

were involved in the decision, which was probably true, or they wouldn't accept

Speaker:

any decision that wasn't their own CMS.

Speaker:

It was probably a combination of both.

Speaker:

But to say the least, the internal team was not very happy with the decision.

Speaker:

And then myself and some other people that were familiar with Drupal were brought

Speaker:

on the team basically as consultants.

Speaker:

To help them transition and to teach the internal team to use Drupal.

Speaker:

But what ended up happening is that we were basically two separate teams.

Speaker:

That didn't go along very well.

Speaker:

And maybe one of the reasons was that the transition was not...

Speaker:

Quick, because they had so many sites that we started when we started

Speaker:

transitioning sites to Drupal, they still had to maintain a lot of the

Speaker:

sites on the existing platform.

Speaker:

So the argument as well is, Oh, like we can divide it like this.

Speaker:

Then the team that is more familiar with Drupal will do Drupal.

Speaker:

And the team that is more familiar with the old system

Speaker:

will maintain the old system.

Speaker:

But in reality, what ended up happening, we had two teams with a lot of

Speaker:

rivalry and not enough collaboration

Speaker:

So you have a group of internal developers highly resistant to the idea

Speaker:

of moving to anything with a proprietary system that they build and another

Speaker:

team coming in and migrating them off.

Speaker:

I'd imagine they're not the most cooperative.

Speaker:

, no, I remember like we had this training sessions , where we would,

Speaker:

literally do like workshop workshops for them and explain, you know,

Speaker:

how Drupal works and how community works and how you contribute.

Speaker:

And then one of, one of the things that we adopted was, we adopted

Speaker:

Drupal's coding standards also for our internal code which is what most of

Speaker:

people usually do in my experience.

Speaker:

And then, of course, then we had this discussion, why, two

Speaker:

spaces, not four and whatnot.

Speaker:

But then we set up this automated QA in place for all the pull requests to our

Speaker:

internal projects that were rejecting everything that was not by the standard.

Speaker:

And then when we were talking about...

Speaker:

Contributing to Drupal first thing that the other team did was they

Speaker:

ran those checks on Drupal core.

Speaker:

And of course it failed miserably because there were like 15 million

Speaker:

problems with it because of, you know, all the history that Drupal went

Speaker:

through and they were like, ha ha.

Speaker:

How are they going to force me to use this coding standard if

Speaker:

they can't follow it either?

Speaker:

And they, they try to submit the patch to Drupal core, you know, you fix your

Speaker:

problems and then I will start using it.

Speaker:

And I'm like, no, no, no, no, no, no, no, let's not do this.

Speaker:

What about management and leadership?

Speaker:

it sounds like they didn't necessarily, engineer this transition very well.

Speaker:

Like, do you think that was a big part of this failure?

Speaker:

You know, I can understand the

Speaker:

resistance from developers, but...

Speaker:

I think that this was the main, probably the main problem, the leadership.

Speaker:

I think that, I'm not entirely sure, but my, my thinking looking

Speaker:

back at this is that leadership was too optimistic and too hopeful.

Speaker:

And they, I think that they thought that the problems would

Speaker:

resolve by themselves eventually.

Speaker:

Which...

Speaker:

Usually doesn't happen, like if you let the snowball rolling without

Speaker:

control, it usually goes in a completely undesired direction.

Speaker:

And this is what basically happened here.

Speaker:

I'm still not sure if there was a way to convince, um, the existing

Speaker:

team to really become on board and become excited about Drupal.

Speaker:

But maybe there was a better way to manage it to prevent a lot of.

Speaker:

Friction and rivalry and stress that resulted from that and then eventually

Speaker:

even burnout because combined with this atmosphere that we had, we also had

Speaker:

really crazy pace of working on new projects, sending them out, going live.

Speaker:

It was like 12 or 16 months of really crazy pace.

Speaker:

So both these things together.

Speaker:

Caused a lot of burnout in my opinion, and then the whole team or both teams

Speaker:

basically dissolved to some extent.

Speaker:

How did the migration itself go?

Speaker:

Were you guys able to pull the migration off?

Speaker:

, with all of these challenges, did it like blow the schedule,

Speaker:

the budget, like what happened?

Speaker:

yeah, , migration worked quite well.

Speaker:

, we did.

Speaker:

multiple projects, as I already mentioned, but we had one that

Speaker:

was, like, by far the biggest.

Speaker:

Um, and it was, , more gossipy, yellow media style kind of media portal,

Speaker:

uh, with quite a lot of traffic, um, for our circumstances, , We did the

Speaker:

incremental migration, which means that you build a new website Parallel

Speaker:

to the old one that was serving live traffic we migrated data over and then

Speaker:

we ran migrations on a regular basis to get new content that was created since

Speaker:

the, the last time migration run over to the new system, which allowed the

Speaker:

content editors and other stakeholders to test the new site and see if, all the

Speaker:

content is coming through as it should.

Speaker:

And it looks okay.

Speaker:

We were also migrating blocks on the front page.

Speaker:

So when they expose something to the front page on the old site,

Speaker:

it's immediately updated that.

Speaker:

On the new site.

Speaker:

So it was, it was pretty, pretty well, well made migration in my opinion.

Speaker:

, and then, but we were a little bit behind schedule.

Speaker:

I'm not exactly sure what the reasons were.

Speaker:

I think that we simply had more requirements.

Speaker:

The estimates were mostly done based on hope, not on

Speaker:

the actual estimating process.

Speaker:

So the hope was, oh, we will go out by 1st of June, and then we just

Speaker:

caught all the requirements, and we figure out that it won't be possible.

Speaker:

So mostly because of those reasons it, was postponed a few times, but then

Speaker:

eventually we were ready and there was pressure to go live at that point but

Speaker:

the problem was that the go live date was like, I think it was less than a

Speaker:

week before the national parliamentary election, which is obviously a huge deal

Speaker:

for a media portal and, uh the managers, like the leadership asked us, Um, you

Speaker:

know, do you think that we can do it?

Speaker:

And we were all really young and really stupid.

Speaker:

And a little bit too, brave.

Speaker:

So we said, yeah, sure, we're going to do it, no problem.

Speaker:

and we go live.

Speaker:

And then on the night of the parliamentary election this portal was one of the

Speaker:

first to publish exit poll results.

Speaker:

And the results were quite surprising.

Speaker:

Because it was tight, but the polls before the election were showing

Speaker:

that, you know, side A will win, but then it happened that side B won.

Speaker:

So it was, everybody was super surprised.

Speaker:

So we got this huge spike in the evening which we survived.

Speaker:

There were a few glitches, but not the site didn't go down, but there were

Speaker:

things like editors didn't know how to do certain things on the site because, they

Speaker:

were not familiar with it yet because they just got it a few days before that.

Speaker:

But other than that, the site worked fine and the election night

Speaker:

went through without any problems.

Speaker:

We obviously had our hands on the back, but that's normal

Speaker:

for situations like this.

Speaker:

Um, Yeah, even years after that, when I got more experienced, I started thinking

Speaker:

about that event and I was like, man, if things got really wrong that night, it

Speaker:

would be, it would have been really bad.

Speaker:

But no.

Speaker:

Back then we just felt, no, sure, we're going to do it.

Speaker:

No problem.

Speaker:

Either tremendous hubris or tremendous confidence.

Speaker:

Wow.

Speaker:

Yeah, I mean, I don't know that every migration is scary, but at

Speaker:

least I can say that every migration I've done is very stressful.

Speaker:

And.

Speaker:

You talked about working, really long days for a really long period of time,

Speaker:

they definitely tend to stretch a team and, um, you know, it sucks that that

Speaker:

organization didn't handle it well.

Speaker:

And, it sounds as a result of it, they lost both teams and,

Speaker:

I wasn't too surprised to hear that they lost the internal team

Speaker:

that, predated the migration.

Speaker:

Unfortunately, I think that's pretty common.

Speaker:

There's a lot of resistance.

Speaker:

To making transitions.

Speaker:

People are married to their technology choices, and some people do.

Speaker:

But, I would say it's 50 50, but it surprised me that the that the

Speaker:

folks who came in also didn't last, in part because it sounds like it

Speaker:

wasn't very well planned and and the organization was challenging to work

Speaker:

with.

Speaker:

Yeah, it also coincided, they, um, when things started falling apart,

Speaker:

they also replaced the CEO and the CEO was really big supporter of

Speaker:

this digital transition project.

Speaker:

And then the new CEO that came in was not really that much into it.

Speaker:

They had to, like, they also wanted to cut costs because we, when I joined

Speaker:

and after I joined, they increased the team quite a lot and that costs money.

Speaker:

And I guess they also wanted to decrease the costs that, that, came with.

Speaker:

So they, they shrank the team and they switched priority and that was

Speaker:

the beginning of my career back then.

Speaker:

Some people that were on the team that were, not so much interested into

Speaker:

constantly changing and, always getting on the bus of the latest and greatest thing.

Speaker:

We're probably happy and mostly those people stayed with the company

Speaker:

and people that wanted to live more stressful lives moved on.

Speaker:

Wow.

Speaker:

Thanks for sharing your scary story.

Speaker:

I think it's an awesome perspective, the dynamics of the team and

Speaker:

the people which are obviously critically important to the success

Speaker:

of your company and your migration.

Speaker:

A huge thank you to Janez Urevc for sharing scary stories from

Speaker:

his time before joining Tag1.

Speaker:

Make sure to check out our other Halloween episode with Benji Fisher,

Speaker:

another top contributor to Drupal, who's going to tell two scary stories

Speaker:

about technical challenges he's faced in large scale migrations.

Speaker:

If you like this talk, please remember to upvote, subscribe, and share it out.

Speaker:

You can check out past Tag1 TeamTalks at tag1.

Speaker:

com slash TTT.

Speaker:

That's three T's for Tag1 TeamTalks.

Speaker:

And as always, we'd love your input, feedback, suggestions on any topics.

Speaker:

You can write to us at TTT at tag1.

Speaker:

com.

Speaker:

That's T A G, the number one dot com.

Speaker:

A big thank you to Janez and everyone for tuning in.

Speaker:

Thanks for joining us.

Speaker:

Thank you.

Speaker:

Bye.

Links

Chapters

Video

More from YouTube