“Keep your software up to date!”
I am sure you have heard this saying many times, and in general, it is good advice.
However, let’s take a WordPress website, for example.
A WordPress site is made from the WordPress core and usually many plugins. You have many pieces in your puzzle. Not all of them are updated at the same time or in the same way.
In my experience, it happened more than once that an updated piece no longer fit with the rest of the puzzle. Auch!
Most update processes do a good job warning you that you need to do a backup first and to ensure the other plugins (components of the puzzle) are compatible with the update.
This approach puts the responsibility of “making sure that things still work” with the user. And not everyone can make that assessment. Also, let’s admit it, sometimes we are in a hurry or just plain lazy :). Ideally, a piece of software should not rely on a human to do the right thing.
I too used to be overconfident in the automatic updates process, and I would apply those every time there was a new update. Click, click, and I was done! What could possibly go wrong?
One time, I updated the store. We had a newsletter scheduled that we expected to generate much interest and I thought I wanted to offer the best and latest shopping experience for our customers. So I updated the store and was on my way. The next day I opened the email to a ton of complaints from our subscribers that the checkout is not working! A full email campaign wasted, not the mention that we looked totally unprofessional — that hurt both my ego and the sales.
What did I learn from it?
1. Updates can potentially be very painful
2. You never change the system right before a big promo campaign. (This feels like common sense now.)
3. You need to be extra careful when you update the part that generates income: the store, the “pay now buttons,” and the subscribe boxes.
4. After you update you need to test at least the critical functionality: add to cart, checkout, subscribe.
5. You better have good backups, in case you need to roll back.
It was not all bad, because I did have backups, so it was relatively easy to go back to the previous version. Moreover, I sent another email campaign with an apology and a second invitation to check out the offer. If I hadn’t had backups that would not have been possible to do.
Another thing I decided to implement is to write automatic tests for the website that can run in the background and make sure the critical processes are still working.
In conclusion: stay up to date, but be smart about it 🙂