The Agile Podcast Episode 7: Estimating Time and Money for a Drupal 7 Migration

Drupal 8 and 9 are very different from Drupal 7. So, migrating out of D7 is going to be more expensive and take longer than previous migrations.

And it’s important to have an idea of how much money and how much longer the move will take, because you could get stuck in the middle of a migration without the resources to finish the job.

So, on today’s episode, Brie and Blake talk about how to estimate the time and money it’ll take to migrate out of Drupal 7.


Blake Newman (00:06): From Washington, DC, I’m Blake Newman.

Brie Ripley (00:09): And I’m Brie Ripley.

Blake (00:10): And this is the Agile Podcast, where we explore the stories and people behind agile web solutions.

Brie (00:16): And during the first season of this podcast, we’re talking all about Drupal.

Blake (00:19): Specifically migrating out of Drupal 7, which has been around for almost a decade. It’s reaching its end of life in 2022.

Brie (00:28): But you should probably start moving out of Drupal 7 as soon as possible because wherever you’re moving, with a few exceptions, you’ll essentially have to rebuild everything on your site from scratch.

Blake (00:39): And we’ve gone through where to migrate, how to migrate and how to staff the migration effort. Today, we’ll talk about estimating how much time and money a migration will take. And we’re going to break it down into two categories, time and money. So, Brie, what do you wanna talk about first?

Brie (00:55): Well, not money.

Blake (00:58): Not your favorite subject so …

Brie (00:58): Not my favorite subject. Let’s do time.

Brie (01:01): Okay. Alright. So when we’re thinking about the time it will take to do a migration.

Brie (01:06): And just so we’re clear time is the indefinite continued progress of existence and events that occur in an apparently irreversible succession from the past, through the present, into the future.

Blake (01:15): Are you being facetious?

Brie (01:18): Yes.

Blake (01:19): Okay. Thought so. Well, okay. Time, it takes time to understand the size and complexity of your project. Time to put together the justification for the use of funds. Time to get approval from your finance department. Time to put out a procurement plan, time to hire and onboard the contractors.

Brie (01:37): A lot of time.

Blake (01:40): And I’m just getting started. I haven’t even mentioned or broken down the actual steps of migrating a website out of Drupal 7 and Brie, you’re about to embark on a triple seven migration at your own job. What does the timeline look like for you?

Brie (01:54): Well, right now it looks like forever, possibly more realistically, something around like 12 to 18 months.

Blake (02:02): That’s a pretty sizable effort then. So Brie, are you familiar with the concept of known knowns, known unknowns and unknown unknowns?

Brie (02:11): This millennial has not.

Blake (02:14): I guess you didn’t grow up during the Donald Rumsfeld days.

Brie (02:17): That’s true. That is true.

Blake (02:19): Yeah. If I’d only knew what I was getting myself into when I started this podcast, that’s like a unknown unkown. Right. Well, the idea applies when we’re thinking about the time it takes to do a D7 migration. There are known knowns, things like how large your site is, how much custom code you have, bigger site, more custom code, more functionality. Those things are going to take more time. Running a smaller site, maybe something you just stood up out of the box with a few contrib modules, that probably won’t take too much time.

Brie (02:47): Okay. So what about the known unknowns?

Blake (02:50): These are the things that we know will likely cause problems. So, we know they’re coming, but we don’t know exactly what they are. For example, contributed modules aren’t quite mature enough and people wanting to make changes and improvements along the way. You know, they’re going to want to make changes. You just don’t know what changes they’re going to want.

Brie (03:07): Got it. And finally, the unknown unknowns, the ones that we don’t know, we don’t know.

Blake (03:14): And that’s pretty much anything you don’t even know as a problem yet. It’s just one big surprise waiting to happen.

Brie (03:20): Okay. So do you have an example?

Blake (03:22): Sure. It could be something really vague, like the importance of your website to your mission. For example, a bunch of Agileana developers are working on a migration from D7 for a big government agency. Shefali is managing that project and a little while ago I was interviewing her.


Blake (03:38): So Shefali, really how are you doing?

Shefali Naik (03:41): (SARCASTICALLY) I’m doing very well.

Brie (03:46): Super believable.

Blake (03:51): Right? So ask Shefali about this migration that she’s managing.

Brie (03:56): And one thing, uh, there’s a bleep in this clip and it’s not because Shefali swears, but we’re just muting out the name of the client.

Shefali (04:06): Uh, am exhausted. Do we really have to talk about (BLEEP) before we start this podcast?

Blake (04:15): If you don’t want to, you don’t have to.

Shefali (04:17): I mean, no, I mean, I could just give you it’s more of the same. So, still hectic, still facing the same issues. I’m still on the Drupal 7 side of things. I want to wrap it up and there are issues cropping every now and then. So still on the other side of the aisle.

Blake (04:37): So you’re still spending a good majority, like 80% of your time on Drupal 7?

Shefali (04:43): 90. Yes.

Blake (04:45): This is a migration to Drupal 8, but Shefali is spending, most of the times to working on the D7 site. For many large organizations, their website is not static. It’s constantly changing. Stakeholders are always asking for new things. So, instead of focusing on rebuilding the D7site into D8, you have to pull your developers off the D8 team to satisfy the needs of the D7 site. After developers wrap up and start to focus again on D8, yet another change request comes in for D7. They’re still making all these changes to the D7 site while trying to move on to the next version of Drupal.

Brie (05:17): Which is time consuming, right? Anything that you add to a D7 site that is migrating to D8 will have to be built twice once in D7 for immediate functionality and again, in D8 for the future site.

Blake (05:29): But for the organization, like the one Shefali is working on, they have a real mission. And the website is part of that mission, which means they can’t stop working on the site while they migrate to Drupal 8 or 9. For Shefali, that means

Shefali (05:41): Whenever we size the project, we should take into account that there would be dedicated resources to the operation and maintenance of Drupal 7 while we work on the Drupal 8 migration or Drupal 9 migration.

Brie (05:58): And that should be budgeted in the time it takes to migrate. But we don’t know that before you start.

Blake (06:04): Right. Shefali says that her team is only about 30% done with this migration. And it’ll probably take a year to do.

Brie (06:10): A textbook example of unknown unknowns.

Blake (06:13): Exactly. These requests come up at random and are dependent on the client. But if you use the agile methodology.

Brie (06:19): Here we go.

Blake (06:20): Yep, here we go, agile. If your client is in on the process, as developers are rapidly prototyping, then they’re in the know about this stuff, they’re communicating with the developers, and hopefully they understand what’s going to happen when they need new features. Here’s Carlos, a developer at Agileana.

Carlos Fernandez (06:37): I think that that’s where the communication, not only within the team, but with the product owner or the client becomes super important. I mean, you need to be very clear with the product owner that, okay, you need this done. You need this new feature on your Drupal 7 site, that’s fine. We can manage to divide the team and make it happen and try to keep the migration going. But it’s going to impact your deadlines.

Brie (07:05): And being up front with communication is really important for me. When I look for people to contract things out, I want someone who has not too technical, but can give me updates and keep me in the loop about changes to the site.

Blake (07:18): Right. Trust and transparency is crucial in the contracting relationship. Okay, let’s talk about money.

Brie (07:24): My favorite subject. So, we know the move from Drupal 7 to Drupal 8 is expensive. Earlier in the season we talked to developers who said that for complex Drupal sites, the cost of migrating could be more than a million dollars.

Blake (07:37): That’s a lot of money. For many people, that’s a shocking amount of money.

Brie (07:41): Yeah. A shocking amount of money. And Blake, as you know, I am involved in my organization’s website and we run Drupal 7 right now. I’m looking at a big migration with in house and contracted developers. And we haven’t quite budgeted it out yet. We’re not exactly sure how much time or money it will take. So Blake, how do you estimate how much money a migration will cost?

Blake (08:04): Well, I always tell clients to take the amount of money you invested the last time you redesigned or redeveloped the site, then add all the money you invested changing and improving the site since you last deployed it. Then multiply that by 1.5 to adjust for inflation. And that would just be the starting point. For example, if you paid, say $500,000 to rebuild your site seven years ago, and then you spent $50,000 per year for the past seven years, maintaining it. Well, you’ve got about $850,000 into it so far multiply that by 1.5 and you get about $1.25 million, and that’s just the starting point.

Brie (08:46): Okay. So that’s a lot of money. And from the client side of things, I’m sure there’s some sticker shock.

Blake (08:52): Yeah. And when dealing with that amount of money, it’s even more important for developers and contractors to accurately estimate costs and communicate with the clients because you don’t want to run out of money halfway through the project.

Brie (09:04): Exactly. Even though it’s a lot, it’s better to know what a migration costs up front so I can budget for it. There’s nothing I hate more than hidden costs. If I don’t know the true cost, then I end up having to spend precious time negotiating with my finance department and what we need to spend on the migration at that point may not be viable, which could be a nightmare.

Blake (09:23): I can see why that’s important. Jen Lampton runs her own small Drupal shop. And she says that it’s impossible to know exactly how much a migration will cost because every site is different.

Jen Lampton (09:33): What I would say is it’s probably going to cost you one and a half times to two times as much as you’ve spent on it to move it to Drupal 8.

Blake (09:40): Jen is also one of the people behind Backdrop CMS, a fork of the Drupal 7 code, so she adds.

Jen (09:45): In terms of moving it to Backdrop, I would say it’d probably costs 25 to 50% of what you spent on it.

Blake (09:53): So, if you move from Drupal 7 to Backdrop, you’re saving a lot of money because all you really have to do is pay for the actual content migration, not rebuilding the theme or functionality. This is because Backdrop is a clone of Drupal 7, but if you’re going from Drupal 7 to D8 or D9 or perhaps WordPress, well, you basically have to rebuild the entire site. And that’s a huge effort.

Brie (10:13): We have a whole episode on Backdrop CMS, go back and listen to it if you want to learn more about that. But back to estimating,

Blake (10:21): Right. Estimating is a very difficult exercise because in order to estimate, you basically have to have past performance data. If you’ve never migrated a site from D7 to D8 before, then you’ve got no past performance data. Even if you have done the D7 migration before, every website is different. Migrating the website is totally different from migrating the Health and Human Services website. Also, if you rely on developers for your estimates, you may not be getting the complete picture because developers don’t always take into consideration the cost of project management, communication or quality assurance. Here’s Jen again.

Jen (10:55): A lot of agencies will just like double or triple the numbers the developers give them. And that also is a little sticker shock for the clients. And it builds in protection, which is good for the agency. And if you can deliver under budget, that’s good for the client. They’re gonna be really happy, but getting them to agree to that first number, I think is a big pitfall.

Brie (11:18): And if your site is being migrated, you don’t want to go over budget because being stuck in the middle of a migration without money, well, that’s a disaster.

Blake (11:26): Yeah, really bad.

Jen (11:28): The worst thing is to get like halfway through a project like that and hit your budget. And especially if you’re at an organization that doesn’t have a very flexible budget. Now you’ve either got to compromise with something that’s half done and continue working with that, which might make you really upset, or give up entirely.

Blake (11:45): Jen says that one of the most distressing things she’s ever seen, at least in terms of Drupal migrations, was an organization that ran out of money in the middle of a migration.

Jen (11:54): One of the saddest things I witnessed recently was a project that committed to moving to Drupal 8 and then halfway through, ran out of their budget and ended up having to launch their like alpha site on a completely different platform. That was something they started before they started the move to Drupal 8. You know, I would really recommend that people do all of the necessary research ahead of time before they jump in.

Brie (12:17): Oh boy. So that’s really bad. But what else could happen if someone doesn’t finish the migration?

Blake (12:23): Well, I guess you just revert to the D7 site and cross your fingers that it doesn’t crash or get hacked. But again, remember that Drupal 8 and 9 are supposedly future-proof, since they’re built on Symfony, the future upgrades should be easier on the budget. It’s just that the initial move to D8 or D9 is going to take some time and be expensive.

Brie (12:41): And you could also think of this as a long term investment.

Blake (12:44): Right. Hopefully with wherever you move, it’ll better suit your organization’s needs. We’ll get into this more in the next episode, but a migration is a good time for rebranding or changing things about your website. Both of those fall under the umbrella of making improvements that would already require an investment. I spoke with Tim Lehnen, the chief technology officer of the Drupal Foundation. Even he acknowledged that it’s a big move to D8 or D9 from Drupal 7.

Tim Lehnen (13:07): It’s hard to look at the Drupal 7 to 8, 9 and beyond upgrade and think, oh, this is just going to be easy because it’s not necessarily.

Blake (13:17): Tim says that moving to D8 and D9 is about upgrading your site. D7’s core is from 2011. So, this move is making your site more modern and there are a number of technical improvements. The software leverages object oriented programming.

Brie (13:29): OOP.

Blake (13:32): Right. Object oriented programming, OOP. There are a number of improvements in D8 and D9.

Tim (13:37): In some ways you do have to think about it more like a replatforming than you do just an upgrade. And that’s what gives people so much pause. I know that’s part of what makes it so difficult, but there’s so much value in the feature set that was enabled by the architectural changes in Drupal 8, by the development model changes. That mean that we get new features every six months instead of years and years in between that happened towards the end of the seventh cycle. Being onboard that train with eight and beyond.

Brie (14:14): Okay. So just to recap, in terms of money, the move out of Drupal 7 is like rebuilding your whole website. So you should probably take the amount of money that you spent on building your first site, add in all the money that you’ve used to maintain it over its life and all the money used to migrate it and then multiply it by at least two.

Blake (14:33): Pretty much. If your site is really complicated, you’ve been adding a lot of custom code, it will probably be expensive. There are also these known unknowns and unknown unknowns. For example, there’s a chance that some of your contributed modules don’t exist in Drupal 8 or 9. So you might have to take the lead in maintaining, not ready for D8 or D9 contrib modules.

Brie (14:53): Though, other modules have been incorporated into the Drupal core.

Blake (14:57): Yeah. And in terms of time, again, it comes down to your site.

Brie (15:00): But you are rebuilding your whole site. So, it will take a fair amount of time. Though, it’s not always known what your migration will look like when you start.

Blake (15:08): There’s a lot to consider.

Brie (15:08): But this migration will be expensive and time consuming. And we can count on that unless as Jen says, you’re moving over to Backdrop CMS.

Blake (15:18): But as we mentioned in our episode about Backdrop, you might need the ambitious experience that you can only get with a Drupal 8 or 9 site.

Brie (15:25): Well, next week, we’re going to talk about pitfalls you might encounter while migrating and ways to improve your site through a migration. So smash that subscribe button on The Agile Podcast on Apple podcasts or wherever you get your podcasts,

Blake (15:37): Please leave a review while you’re at it. Thanks for listening until next time.

Brie (15:41): Talk to you soon.

Blake (15:44): The Agile Podcast is produced by Agileana, a DC based web development company. To learn more about Angelina, you can visit our website, or e-mail us at [email protected]

Do you need some help?

Let's get started. Tell us a little about yourself and your organization
and we can start a conversation about your needs and our capabilities.

Related Posts