Apparently there's some FUD (Fear, Uncertainty and Doubt) being sown by a few Drupal shops who are spreading downright wrong information about Drupal 8, trying to encourage people to upgrade to 7 now. One of our clients called in a panic unsure whether she needed to act, after getting approached by Drupal Geeks pitching this misleading content, which they've now posted in a highly inaccurate blog page, here:
6 Reasons to Upgrade to Drupal 7 Right Now
The problem is, the 6 reasons they cite are, if not downright wrong, highly misleading. Here's why.
"1. Drupal 7’s mature code". Ok, so this one isn't wrong -- Drupal 7 is an excellent CMS, with decent test coverage, a huge user base, and it is quite a bit more reliable than Drupal 6 ever was. This is about the only point that doesn't mislead.
"2. Better Contributed Modules". I would say this one is true, but not for the reasons cited. According to Drupal Geeks, "Drupal 7 is a great improvement over Drupal 6 because there are more modules available".
I think there are actually fewer modules available -- but the Drupal 7 ones are more powerful, so you need fewer of them. We've seen a steady trend in Drupal of lots of single-purpose modules dying off as they get replaced by more powerful modules. The rise of Rules, Views, Display Suite, and Panels means you can wire together a huge amount of functionality with fewer one-off modules.
The problem is, this greatly complicates the upgrade path, leading to vast numbers of Drupal 6 modules completely abandoned, with no easy replacements. Upgrading to Drupal 7 means re-doing a lot of functionality to replace the abandoned modules from Drupal 6 and earlier.
"3. Easier Future Upgrades". Here's where we've entered the realm of downright inaccuracy. The Migrate in Core initiative committed to a full upgrade path from Drupal 6 straight to Drupal 8, with initial plans to add D7 to D8 migrations later. Last year they announced support for both: https://www.acquia.com/blog/d8migrate.
In short, it's likely going to be substantially less costly to migrate from D6 straight to D8, than it is from D6 to D7. And that's even before you count in the costs of migrating D7 to D8! Doing a migration from D6 to D7 now is a very costly proposition, something we've been recommending our customers hold off on for the past year, unless they have an immediate need for substantial new functionality.
"4. Direct Migration Paths from 6 to 8 are uncertain". Complete and utter BS. As noted above, D6 to D8 migrations are already supported, and have been supported even before D7 to D8 migrations. Not only that, but D6 to D7 upgrades are horribly expensive for the value provided -- there are no clear upgrade paths from D6 to D7. There are two alternatives: "Update" which takes far too long and involves a lot of time you can't make changes to either site, or "Migration" which works really, really well but takes 30+ hours to set up for anything more than the most basic of sites, and can easily reach 150 hours.
"5. Avoid lengthy manual testing". ??? What are they smoking? For this one, they claim: "When Drupal 8 is released, Drupal will no longer provide automated testing of Drupal 6." I've got news for you: Drupal 6 never had any automated testing! Drupal 7 was the first release to include any kind of automated testing.
When Drupal 8 is released, the Drupal security team will continue to provide coverage for Drupal 6 for 3 months. That's not a lot of time to do an upgrade, and if everyone is trying to stack into that window, many are not going to be updated before the "End of Life" for Drupal 6. But this article is flat out wrong -- it's not a question of automated testing, it's a question of whether the security team will issue bulletins or review the old code. And there's a 3 month window, not an immediate cut-off. Here's the official announcement of the Extended Support Policy for Drupal 6.
"6. Security Support". Ah, here's where they get to that security policy, somehow having missed all the community discussion around supporting D6 for longer than previous releases (for a while many were proposing a full year of support for D6 after D8 came out -- the final decision is 3 months).
I really hate to go out and get negative about anyone in this great community. But I'm a little ticked to have irresponsible, misleading articles out there, especially when the vendors concerned are trying to scare our customers into an expensive and unnecessary upgrade.
Argh! So what should I do?
Start planning for an upgrade now. If you don't have immediate need, absolutely wait for Drupal 8 -- it's going to be the best Drupal ever, and one of the best application platforms out there -- we're tremendously excited to see it nearing release, for a lot of reasons.
First among them is that all upgrades to Drupal 8 are going to be painful -- but upgrades past Drupal 8 are likely to be far less costly. Why? Because by moving to a completely object-oriented core, it will be possible to upgrade one component of the site at a time. Before Drupal 8, it was not possible to use any contributed module or theme with any different major version of Drupal. So if you want to upgrade something to the next Drupal release, you had to upgrade EVERYTHING. From Drupal 8 on, this is no longer the case -- module developers can ship (or leverage) shim classes that might allow you to run a Drupal 9 module on Drupal 8, or vice versa. Object-Orientation allows developers to abstract away the underlying system, and run on any version with little modification.
So anybody migrating from D6 to D7 right now is largely throwing their money away. No question, D7 is a better system, and a very fine platform for developing a web application, but it's going to have a pretty costly migration to get to Drupal 8 in the next 3 - 5 years. And why do that twice if you don't have to?
What if I'm starting a big project now?
Well, I would say it's not too early to consider Drupal 8, now that it's in beta. Right now I would expect all things considered, that building a complex site is going to cost more in Drupal 8 than in Drupal 7, and will take longer to get done. However, it's likely to cost less to build in Drupal 8 and resolve all the bugs and put up with the pain of beta release cycles than it will to build in Drupal 7 and then upgrade to Drupal 8.
For most businesses, I would say the opportunity cost is the clincher for Drupal 7. You're going to get a more reliable site, quicker, on Drupal 7 than you will in Drupal 8. Drupal 8 will take longer and have more bugs early on -- and you may need to wait a while longer for some critical features such as e-commerce, groups, integrations with other systems, etc. If you're in business, can you afford to wait? What would an extra 6 months of having a capable, robust site working for you mean in terms of revenue?
If your needs for the site are modest, it's probably a better candidate for Drupal 8 -- so much of what we need to build great Drupal sites has been added to Drupal core, and is already available (unlike what happened when Drupal 7 released). If you're not doing e-commerce or a large membership site, Drupal 8 may well be worth considering, if you've got a larger budget to start with, and some tolerance for being a guinea pig.
I'm still on D6, and I need it to do more!
Most of our clients on D6 we've been coaching to wait to D8. That time is fast approaching, and it's time to start planning. For clients who want to have a smooth transition, and don't want any coverage lapse or risk of running an unsupported release, it would make great sense to do a dry run migration now that Drupal 8 is in Beta. We can run through the migration, document the user stories on the site, determine the status of all necessary functionality, and come up with a roadmap and the modules blocking a full upgrade.
If you are in a hurry to get more functionality, a Drupal 6 to Drupal 7 upgrade does make a certain amount of sense. If you are not budget-sensitive, don't mind paying to rebuild the site twice, want to stay on well-supported releases, and have some functionality that would be far quicker to deploy on Drupal 7 than in Drupal 6, by all means, do an upgrade. We do have this upgrade process down -- after upgrading around 6 sites from 6 to 7, what we've found is that the cost of doing an upgrade usually exceeds the value gained.
Drupal 7 is a far nicer system to use, though, so the sites we have upgraded have been happy about the result. It's just a costly proposition, because it basically involves re-building your entire site, including the theme, and then migrating your data into it.
What about mobile?
Generally, mobile has been the single biggest reason our clients have had for upgrading from D6 to D7. Why? Because we need to rebuild the theme anyway when upgrading, and that's often the single biggest chunk of the upgrade. Might as well justify the upgrade cost as the cost of getting a mobile theme.
These days, we're actually advising our big Drupal 6 customers to go ahead and re-design in Drupal 6. Now that we have great tools like Sass and Compass for building responsive sites, and all that happens in the CSS layer, building a responsive theme for Drupal 6 and in parallel doing it for Drupal 8, we think we can roll out an entirely new look before doing the upgrade -- and be that much closer to having the D8 site ready to go.
In short...
Go with additional development in Drupal 6 if:
- You want a new design implemented, a responsive theme for mobile, and are planning an upgrade to D8 when it comes out
- You have some improvements you want to do now, that can be done easily in Drupal 6
Upgrade to Drupal 7 if:
- You have a big chunk of new functionality you need as quickly as possible, and Drupal 7 is so much better suited than D6 that it will cover the cost of the upgrade
Upgrade to Drupal 8 if:
- You want to make sure there are no coverage gaps or risk of running an unsupported release -- do a dry run upgrade now, and start planning for a full upgrade to be ready by the time Drupal 8 is out, or
- Your site is relatively modest, you want to be an early adopter, or you want the extra marketing gained by being an early case study for an upgrade
Create a new site in Drupal 6 if:
- Don't do that, that's just plain dumb!
Create a new site in Drupal 7 if:
- Your current site or solution is not going to be adequate for the next 6 months, and you're looking to drive results as quickly as possible
- You need e-commerce, workflow, or other complex functionality not likely to be available in Drupal 8 for a while after release
Create a new site in Drupal 8 if:
- Your needs are modest, and you're willing to spend more in the short term for substantial savings in the long term
- You mainly need a web services-based application on the server -- most of your functionality is in a mobile app or a single-page javascript app
That's our assessment, as of October 2014. I expect this situation to change pretty rapidly as soon as we start doing some Drupal 8 sites -- I expect even the most complex things like Commerce to be available very early, so in 6 months I think it's quite likely that our answer for all of the categories above other than D8 to be, "Don't do that, that's just plain dumb!" That's not the case right now -- but every day that passes makes D8 a stronger contender.
Drop us a line if you're ready to start exploring Drupal 8!
nit
A nit to pick with #4. While what you say is generally true, trying to migrate a d6 site to d8 is most definitely going to be more trouble than d7->d8. D6 modules are already being abandoned with disturbing frequency. What are the odds maintainers will spend creating the proper migration code for older d6 contributed modules? At least if you move to d7 as an intervening step, the likely hood that d7 modules will be properly 'migratable' (is that even a word, lol), its much greater-- no?
Hi,
Hi,
Our experience is that a huge number of contrib modules were abandoned, with no upgrade path, between D6 and D7. So, no, I don't think there's a clean migrate path to D7 as it is.
You could do some of the migration work by migrating functionality to things that should upgrade better -- such as migrating a lot of the old one-off modules to rules or views or bean or something. So yeah, if you're planning ahead, you might be able to lighten the second migration by doing the heavy lifting in the first.
Drupal updates have long been the big Achilles heel here. With D8 there's an actual migration framework in core, that should make contrib maintainers' lives easier if they choose to provide an upgrade path -- but even if they don't, any programmer familiar with the framework can create these migration paths. The only reason why Drupal 7 might be a better target at the moment is if the functionality you need isn't there at all in D8 yet, and you can't wait ;-)
Yes, D7 -> D8 will probably be easier than D6 -> D8, if only because you can already make use of the power modules like Rules and Bean, and there's a more analogous entity architecture already worked out. But I think D6 -> D8 is going to be easier to do for large sites than D6 -> D7 -- that's my point here.
Add new comment