Why are CiviCRM upgrades hard?

If you’ve already got an expert professional (in-house or outsourced) handling upgrades for you, you can probably skip this email. But if you’re curious about the kinds of challenges that can come up, or you’re doing the upgrades yourself (totally do-able, by the way), this might interest you.

Running your own open-source CRM gives you a lot of flexibility and power. But it also gives you ownership of maintenance, and that includes upgrades.

In fact, upgrading your software may be the one maintenance task that comes up most frequently, that you can't get away from, and that can make you pull your hair out when something goes wrong.

So why are upgrades hard?

The short answer is: They're usually not.

But sometimes you can run into problems like these:

  • You don't know how to backup your site before the upgrade (and if this is a problem, it's about more than your upgrades, because frequent backups are a minimum best practice for any site that you're running.)

  • If someone has modified your CiviCRM code files (which is a bad idea but sometimes developers will do it), those customizations will be lost in the upgrade.

  • If someone has created PHP or template file overrides, or made changes to the database schema (again, bad idea, but it can happen) those customizations can cause fatal errors during or after an upgrade.

  • it can happen that one or more of your extensions is incompatible with the new CiviCRM version.

  • CiviCRM upgrades sometimes require changes to your CiviCRM settings file, or to your customized message templates, or to your CMS theme.

  • The new CiviCRM version may provide new warnings about issues that have long gone unnoticed on your site. The warning isn't caused by the upgrade, but it can be surprising to start getting new warnings.

  • The new version may require an upgrade to some other component of your site: the CMS, PHP, MySQL, etc.

After you've handled a few upgrades, you'll see some of these, or others. And it can be frustrating.

But it's not CiviCRM's fault. Out of the box, a vanilla installation will almost never hit any of these issues.

The complexity comes from the fact that CiviCRM itself is meant to be highly configurable, extensible, and customizable. The more you shape it to your needs, the more valuable it becomes for your work — but the more attention you'll need to give in maintaining it.

Here's the thing:

As with everything, customization and complexity are trade-offs.

Before you decide to make significant customizations, it's good to think about the actual business benefit you'll get, and compare that to the increased cost of maintenance. Usually it's worth it — if you have clear business goals for the system.

All the best,
A.

Previous
Previous

Shielding users from complexity in CiviCRM

Next
Next

Identifying your true fans