This is a transcript. For the video, see APQC:The D9 Migration - approach, challenges, and what’s next.

[00:00:00] Michael Meyers: Hello, and welcome to the Tag1 Team Talks, the podcast and blog of Tag1 Consulting. Today, we're going to be speaking with the technology leadership at APQC, the American Productivity and Quality Center about their Drupal journey and their recent migration to Drupal 9.

[00:00:16] In the first segment, we talked about why they initially chose Drupal, their experience running the platform and why they decided to continue using Drupal. In this segment. We're going to jump into the D9 migration itself and give you some insight into how they approached it, and hopefully help you with your migration.

[00:00:35] I'm Michael Meyers, the managing director at Tag1 Consulting, and I'm joined today by two special guests. John Tesmer, the executive director of information technology at APQC and Jim Gillilan, the senior architect and lead of the technology team who is known as Neclimdul on Drupal.Org , has done a lot of core contributions and has been a long-standing member of the Drupal Security Team.

[00:00:59]Jim and John. Thank you guys so much for joining us.

[00:01:03] Jim Gilliland: Thanks again, Michael.

[00:01:05]Michael Meyers: So, you know, for, for folks listening again, please, you know, check out Part one where we, we told you a lot about the organization and, and, you know, how Drupal was originally chosen. And it turns out that the reasons for choosing Drupal 8 were, were pretty much similar, you know, Drupal, its only gotten better, you know, the features, functionality and reasons like the community that led to the initial decision, you know, were even stronger.

[00:01:30] And, so let let's talk about the migration itself. You know, you had made the decision to use, you know, at that time, Drupal 8 before you went on to 9, how did you approach the project? Like migrations are pretty gnarly. You know,

[00:01:44] Jim Gilliland: Yeah. And we had a lot to work with. We had several hundred thousand users in our database.

[00:01:50] Not all of them active, but, you know, people come and go. So, we needed to keep most of them and we have a lot of content that we're pulling over that we need to keep historical information on. So it was, it was a, a pretty big project. And when we decided to move to Drupal 8, we ended up kind of having to break out, different teams within it to kind of build out the new site and come up with the architecture and, you know, populate all the content types and come up with the model the business was gonna need to use, as well as, you know, start theming those.

[00:02:22] While at the same time we were coming up with all the mappings and processes that were going to be needed to migrate to that new model. So I'm mostly focused on coming up with those and building them out into Drupal's migration system, which has a whole lot of tools for migrating. And it was very, you know, it allowed me to iterate pretty quickly as the content model was changing during that process.

[00:02:48] It wasn't without its problems, because of the size and the amount of data we were moving.

[00:02:53] I sometimes ran into problems with how Drupal manages its caches and long-term processes. But you know, the migration, I ended up spending a lot of time on migration team meetings, talking through with the team and coming up with solutions.

[00:03:09] So again, the community kind of stepped up and helped us through that process.

[00:03:15] Michael Meyers: Awesome. I think, you know, when, when we were talking about the migration, one of the things that really stood out to me, you talked about how you sort of spun the design team out into this parallel path and how they were doing their work, you know, you know, in Twig and theming separately and its in its own site.

[00:03:33] And then you incorporated that back. Can you give us a little sense of, of how that worked and you know, why he chose to split it out?

[00:03:41] Jim Gilliland: Yeah. So, you know, we had a lot of different people have a lot of different, skillsets and some of them were, you know, very skilled in, you know, doing design processes and they're familiar with, you know, different templating languages.

[00:03:55] So. And a Twig, and they brought a platform called Pattern Lab in, and they were able to iterate on that and build out different parts of the site, different widgets and,

[00:04:04] You know, they call them atoms and molecules and, and build up all the parts that would show up on different pages. And then the site building team that was building out the content model, model would be able to pull those into paragraphs and connect the different parts of the Twig model.

[00:04:22] They were building in Pattern Lab into those paragraphs. And, sometimes, you know, they'd only be able to part of it. Sometimes they'd be able to pull most of it and just pass variables from fields and to tweak variables and back and forth. But it allowed the teams to work pretty quickly with, you know, the design team could sit with.

[00:04:43] And go through all the models, just in static pages, build out Twig templates, and then hand them off. And the design team that was working with content, connect, connect, all those back, go back and forth between them pretty quickly. So it allowed, as you know, any big site projects,

[00:05:00] As you come in with this great idea of how everything's going to work, when you get into the weeds, none of that winds up, well, you know, some of it does, but most of it doesn't.

[00:05:10] And so, you have to iterate pretty quickly and that allowed those teams to go back and forth real quick and, and work with the different parts of the business, through how they want things to work versus how people were publishing things and figure that out.

[00:05:25] John G Tesmer: No plan survives first contact with the enemy, as they say ,

[00:05:28]Michael Meyers: Divide and conquer, it's split up in different groups, site building, design, migration process in that iterative approach. You know, it helps get a lot done quickly. You know, as you mentioned, your plans change and also business needs, you know, one of the reasons, you know, you guys migrated is there's things that you wanted to do.

[00:05:46] You know, and as you start introducing these new changes, these new integrations that are, you know, required, you know, how did you manage sort of, you know, the business side, working together with the technology side, you know, to, to go through this process?

[00:06:05] Jim Gilliland: Well, that's a question, you know, it, it, it kinda changed through the project.

[00:06:09] You know, I think we felt that we knew how everything worked going into the project, and we really figured out how things worked. During the project. And a lot of, people that we usually didn't work with, in IT, or we maybe see once or twice a year for a small project, we're on like weekly calls with us, going through, how we are going to change, you know, basically changed the business because, our, our website's so tightly tied to the business.

[00:06:35] And, it, you know, the, during that process, you know, there were so many things came up that, you know, we thought were fine before, and they're like, I really hate the way this works. And we designed it to work the way it, what work, you know? So then we have to iterate again and kind of come up with, how that was like, how that really worked within the business and, you know,

[00:06:55] It was, it was interesting.

[00:06:59] John G Tesmer: Yeah, we made some friends

[00:07:00] and we lost some friends. It was at the time I was on the business side of things. I wasn't leading IT group. I was one of Jim's sort of business stakeholders. And, and part of the value that we deliver to our members is through the ability to take the data that was in my data warehouse and put it on to the webpage that our members would see.

[00:07:23] And we had to make sure as a part of this migration, that was going to continue to be a transparent exercise for the end user. They should be able to log into the website. The system should determine what they're allowed to see, to a very fine degree of granularity. And then present that data from a data warehouse, the Drupal doesn't really know much about.

[00:07:41]So, you know, there was a lot of iteration I would say, and, and it kind of led to a very robust sort of behind the scenes API that, it connects all of our systems today. You know, more than I think we thought it would at the time. So we, you know, we've continued to build an iterate and develop on that.

[00:07:58] And, and I'll tell you that as a business person that had to work with the technical team, it, it was, it didn't seem to hurt. We were able to get a problem solved and there wasn't a lot of technical boundaries that we had to break in order to make it work.

[00:08:15] So that was good.

[00:08:16] Michael Meyers: Yeah. I mean, I feel like you guys make it look easy, you know, and we talked about earlier, you know, the, the hidden technical complexities and the, you know, like there's a lot going on under the hood with the integration through these API and all these different systems and the heavy degree of granularity.

[00:08:31] So what, you know, when someone comes to you and says, you know, I want this little feature and it seems like pretty simple from their perspective, you know, like, how does that conversation go?

[00:08:45] John G Tesmer: We we've had to develop some, some pretty rigorous methodologies internally for what I'll call like project management, I guess.

[00:08:53] You know, we, we've kind of had to hybridize the typical agile approach. Just to keep the business people focused on solving the problems they wanna solve. So when they do come to us, we can kind of draw a box around what they're trying to do and conceptualize it and then move it through and kind of an agile way until it gets, you know, fully implemented out there.

[00:09:10] But, but that's really been a critical kind of development for us. And it's something we're constantly iterating on just the methodology of how we deliver that work, so.

[00:09:20] Michael Meyers: It sounds like it really strengthened your relationship with, you know, sort of the business side of the organization and John, you coming over from the business side of the organization.

[00:09:30] So you know, a lot of great changes in sort of that partnership. What about the changes on a development front? And the workflow is like, you know, D6 and D8 and 9 are two different worlds, two different technologies, you know, what was it like. To go through that change from a technical standpoint. And, and would you say you came out better the other side?

[00:09:52] Do you like the new way?

[00:09:54] Jim Gilliland: Yeah, it was, it was a big leap. And, I definitely would say that I, I, I, I feel like we're better off. There's. So many more tools, in Drupal 9, that I can use, you know, I didn't have the queue system, that I can offload tasks to.

[00:10:07] I didn't have, like the sort of the builder is a caching system that allowed me to pull in data from an API and set a time limit, and not worry about it.

[00:10:16] There's all sorts of tools within Drupal that I have now that, are just leaps and bounds better, but also it allowed me to kind of move our tool chain forward, and. That was probably one of our biggest roadblocks that we're running into at Drupal 6 was that we were, you know, just, so far, behind the curve even, back then that, you know, we couldn't. People wanted all these dynamic applications and stuff like that.

[00:10:41] And we just couldn't deliver because we didn't have, we'd have to build an entirely new system on to of Drupal 6 to be able to deliver those sorts of tools. And now, you know, I can just throw an API together.

[00:10:55] That, within Drupal and build out some small application and view and have that follow up and they can talk and everything just kind of works.

[00:11:03 ]It's a lot quicker to build those sorts of things. Now that we have all these tools, with node and PA, composer, or I can pull it into PHP library from all these great new PHP libraries that exist and, develop things out. It's, it's, it's been a huge leap forward and the, and the tooling that we can use and, you know, as Drupal eight has progressed in, into Drupal 9, you know, it's just new features all the time that just kind of seamlessly work and it's been super stable for us.

[00:11:36] So, it's been, it's been really great to be able to have that, platform to work off of and being able to focus on all the new features and new functionality that the business wants to build out.

[00:11:48] John G Tesmer: And, and I'll tell you as the interface between Jim and the business, a lot of times it's been great to be able to be ahead of their expectations.

[00:11:57] So if they come to us and say, you know, like for example, we're doing this project interactive content, and that's a real great example of, you know, Putting in an API on top of Drupal and merging some features with Drupal, we were able to kind of lead the business, I think, faster than they expected and much less expense than they expected, for, for that capability.

[00:12:17] And I totally attribute that to the capabilities that Jim has available to him. So, you know, when, when I'm having a business conversation and they're like, you know, we want to do this with the site, wants to do it this way. I can kind of talk to Jim and figure out, all right, technically it's feasible. And you know, it's not really that big of a problem.

[00:12:32] We can, we can move that along pretty quick. It's been great.

[00:12:37] Michael Meyers: You guys really changed and, and deepened your relationship and interaction with the business team. You changed your tooling also for the better, you know, really helping the technology team. What about infrastructure? Did you guys go for the trifecta?

[00:12:53] You know, what were you doing and what's going on on that front?

[00:12:56]Jim Gilliland: We didn't change their infrastructure that much.

[00:12:59] But, you know, we kind of, I mean, I, I tweaked a few things. We can, we can use some Docker containers to kind of help our build process a little bit, but for the most part, I was able to kind of keep the infrastructure it is and keep focused on building out the new site.

[00:13:14] And we're currently kind of looking out we're going to change that and move it into a more modern infrastructure.

[00:13:22] Michael Meyers: I think that's a really smart decision. You know, making too much change at once is, you know, a hugely risky and you guys made a really impressive amount of change in a really short period of time.

[00:13:35] Makes a lot of sense to put that off there, there really isn't too much to be gained in doing that at the same time and, and way too much to be risked.. So we talked a lot about what went smoothly and great. You know, I want to dig into the challenges a little bit more and, and, you know, the, infrastructure's a good segue in the sense that, you know, I know one of the challenges we worked on is search, you know, and, and you guys, you know, went from having a really impressive and complex SOLR system internally.

[00:14:04] And you did choose to spin that component out to a SAS service provider. You know, both a benefit, you know, in reducing complexity and offloading on a lot of server maintenance and support, but also a challenge because that was like a key part of the application and infrastructure. You know, was that one of the bigger challenges and, and why?

[00:14:26] Jim Gilliland: So search has been one of our bigger challenges because it's, it's. You know, the business kind of has to understand how they want to make changes to, to a search engine and trying to teach somebody how Solr works or how stemming works or how complicated processes within how search engines work. It's not something that they want to deal with and it's hard to communicate back and forth between the business.

[00:14:53] And so that was like a huge challenge for us. It was, it was a big challenge before we moved to Drupal 8, but it's because we've been moving so quickly. Interplay is becoming even a bigger challenge for the business. And that's kind of what led to us, looking to offload into search stacks and being able to, to move that into an external service where they could, manage that interaction with tools and, and you know, all the analytics on top of Solr that we didn't have to build out.

[00:15:28] John G Tesmer: And maintain, and we're small IT team

[00:15:31] it's, you know, Jim is, he's like the core developer and we've got a couple of contract guys that come in and do stuff. And some of the things that our business people want us to add or just,

[00:15:40] it would be a lot.

[00:15:41] Jim Gilliland: Yeah.

[00:15:42] But you know, I guess the, the bright side of that is.

[00:15:46] Within Drupal, all of the tools are in there. That's been pretty seamless to be able to work with search API in the config system and be able to swap configurations back and forth and, you know, work with, testing it on the search stacks platform and then come back and work with the, you know, an iterate on our known platform when working on other features.

[00:16:08] So even, even though that's, that's kind of a real hard problem for us. It's, again, the, the flexibility and the tool that Drupal have kind of given us the ability to deal with that.

[00:16:22] Michael Meyers: What about other challenges? I mean, this is a pretty big project. What would you say, you know, outside of search was another big challenge that you had to deal with?

[00:16:32] Jim Gilliland: So the migration process also wasn't without hurdles.

[00:16:35] We, I, I think I mentioned that we ran into a lot of problems with the memory, being able to have those long running processes, you know, the migration ended up taking like a day and a half.

[00:16:47] It was, and having, that run for that long, it was, it was, it was a challenge.

[00:16:52] John G Tesmer: Probably the environments too, right Jim? The managing different environments because of that much data.

[00:16:56] Jim Gilliland: Yeah.

[00:16:57] Yeah. And we've also that's scale. A problem that we're going to be looking for in the future is figuring out how to deal with environments because we're moving through so many features now so quickly that the business wants to look at all of them individually.

[00:17:10] And, you know, I can't have them spin up a test that their own local dev environment and look at this branch and look at that branch, or I can't sit with them and, you know, do that. So we need some way of, you know, looking into that, you know, Tugboat or any of these new systems for kind of dynamically building up environments are definitely in our future.

[00:17:31] Michael Meyers: So you know, a lot of the complexity of the application like we talked about is really hidden. And as you, you know, really dig into this both from a technical standpoint and from a business standpoint, you know, these, these technical and sort of, functional complexities, Start to surface, you know, how, you know, the sheer scope of this?

[00:17:53] John G Tesmer: Yeah. I mean, I think traditional sort of Drupal sites are basic CMS sites, right? So somebody might spin up Drupal, load some content into it, and then maybe have a real simple kind of integrated stack that kind of begins and ends at Drupal. Maybe some, some SAS stuff in the cloud. You drop a pixel or whatever for tracking, that's kind of the end of it.

[00:18:12] But for us that goes even more. I mean, we have a obviously a CRM system that's related to Drupal in some ways so that we know who has access to the content, we can manage that access, outside of Drupal. We also have a data warehouse that publishes benchmarking data requires granular access controls.

[00:18:29] So we had to create some APIs on how people could get access to that content. So now we've kind of broken out of that silo of content all exists in Drupal and it has to be managed outside and brought in and permission to same way. And then on top of that, we have traditional, you know, marketing website stuff to try to get people to understand who we are and what we do.

[00:18:47] And, you know, our unique position in the world is at a 40 year old nonprofit in the best practices space. There's not a lot of people like us, so we have, you know, stuff like that. We also have, you know, just traditional like, job sites, like what positions are available at APQC. These are all pieces of content that, that everyone else has to manage, but we also have the added complexity of the benchmarks and the PDFs and the best practices and stuff like that.

[00:19:09] And I think it has created a lot of innovation for us internally, and we moved really quickly. You know, Jim has been an- just amazing as a technology person, to, to solve these technical problems and make it look really easy. Jim is amazing at that. And, and I know that a lot of what makes it possible for him is the ecosystem, right?

[00:19:31] The Drupal kind of platform and, and, and the ecosystem that, that he has available to him and the people that he can sort of call on to, to get his problem solved. I mean, it's, it's, we haven't yet found a problem that is unsolvable for us, in, in a reasonable amount of time. You know what I mean? When in 2016, when we wanted to launch a new complete application platform called Mosaic, we actually built it as a separate sort of application.

[00:19:59] We're able to bring it in with Bakery. And so people did single sign up. We just brought on an e-learning platform that was completely independent of our site. It's a, it's a platform for e-learning. We were able to integrate it. It's a single sign on using modern web integration techniques that, you know, in Drupal 6 we couldn't have ever done.

[00:20:18] But you know, it's just, it's the amazing thing is whatever the technology problem is, we've got the talent in house and that ecosystem to support us to, to solve any of those business problems.

[00:20:29] Michael Meyers: Yeah. And I, I second that I had the opportunity and pleasure of working with Jim, gosh, maybe 15 years ago now.

[00:20:36] And, and, you know, you are amazing and a huge asset. And I think one of the great things that Jim brings to an organization and you know, something I want to mention to people is he is involved in the Drupal community. And so you guys talked about the challenges that you had with the migration module.

[00:20:53] You know, he has the relationships in the cloud and the community to reach out to these people and say, Hey, you know, we're having problems here are solutions, and that's, you know, let's help make that happen. And I think, you know, it's a really important reason for organizations to support and get engaged in the community, you know, to support the developers in the community that are building these platforms, because it is an unbelievable advantage.

[00:21:18] You know, it really unlocks the technology. You know, it brings you to a point where there's little that you can't solve, as a result of. And so, yeah.

[00:21:29] **John G Tesmer **And I'll tell you from the pointy haired boss perspective that, You know, a lot of companies, I think don't recognize the value of the open source community and, you know, the Drupal community as an extension of that.

[00:21:39] But it's really in line with our mission as an organization. I mean, our mission is basically to identify best practices, to disseminate them widely and to bring people together, which is a very, very cohesive with a lot of the open source kind of ethos. Right. You know, we figured this cool way to do something out, let me contribute it back.

[00:21:57] And I mean, Jim and I are always looking for ways to try and help out in the community. We're always trying to, you know, can we, can we push this out? Can we make this a library available? Can we give back, can we give back because it's been great. I mean, it's helped us, you know, our little. Our little slice of the world.

[00:22:14] We have customers around the world. We have people in every corner you could ever imagine in every industry, in every country, and, and they benefit and they improve their own productivity as a result and their lives are better. So it's just, we're, we're taking that kind of open source ethos and just kind of pushing it out there in, in things that aren't software.

[00:22:36] Michael Meyers: I really appreciate the approach that you guys do, and it's, you know, it's a pleasure to work with you because you're so willing to, to, you know, improve Drupal. So looking back, would you guys, you know, change anything? Would you choose Drupal again again? You know, you know, now that you've been through it, w you know, what do you think?

[00:22:55] Jim Gilliland: I mean, I'm in love with the Drupal community. We you know, so it it's a no brainer for me. And I've got, you know, basically family in the community now that going back, since I've been here so long, and like you said, like if I, if I take a problem and, I spend an extra hour or two on it and work with the community on it, that pays back, you know, double the next time I have a problem, because somebody is already working on that problem within the community, or they remember me from helping with that and that, you know, they'll, they'll engage a little bit quicker.

[00:23:28] So, I, I would in a heartbeat. Do it again. It's, it's definitely, it's been worth it.

[00:23:34] John G Tesmer: Yeah. I mean, from a business perspective, I don't even have to justify, you know, any kind of version upgrades that happen. I mean, it's just, it's just our operating system now. It's what we do. And, and I can't imagine us making a change.

[00:23:47] Michael Meyers: I love that Drupal's the operating system of the business. I'm totally going to steal that.

[00:23:55] Awesome.

[00:23:56] Thank you guys so much. This was, this was really insightful. I really appreciate you sharing. Not just what went well, but, but also the challenges and, and you know where you guys are going from here.

[00:24:06] So thank you so much for joining us, for our listeners. Don't forget to check out part one, you know, the intro and background on APQC, why they first chose Drupal, and planning the migration. If you liked this talk, please remember to subscribe and share it out. You can check out our past talks at for Tag1 TeamTalks. As always.

[00:24:30] We'd love your feedback on this show as well as topics and suggestion ideas for the future. You can email us at That's tag the number Again, Jim, John, a huge thank you so much for joining us. We really appreciate it. And thank you to everybody who tuned in today.

[00:24:51] John G Tesmer: Awesome. Thanks for having us.

[00:24:52] Jim Gilliland: Thank you.