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.
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.