Why is it important to upgrade your Magento 2 webshop?
Magento 2 Upgrade is a required procedure to keep your project secure and up to date with the latest features that Adobe developed for the platform.
However, many business owners underestimate the importance of upgrades, others could be shocked by the size of investments they require. Let’s have a breakdown of the topic of Magento 2 upgrades and see what benefit it has and what could impact the cost of an upgrade.
Why should you upgrade Magento 2?
First, it is about security. Keeping the webstore on the latest Magento 2 version would dramatically decrease the chances of a Data Breach.
According to IBM report, the average global total cost of a data breach for a business is 4.35 million dollars. Meanwhile, Verizon investigation of Data Breaches for 2022 shows that Data Breaches through exploit vulnerabilities in Web Applications took 2nd place last year.
Fortunately, Adobe provides special releases for merchants who do not have the latest version on their webshop.
In such case, if your store is using 2.4.4, you could apply ‘security patch update’ to 2.4.4-p2 with only security fixes applied, without changes to the functional core.
It could be used to skip some specific versions and next time to make a ‘leap’ from 2.4.4 to 2.4.6.
Moreover, the Magento 2 codebase is only one piece of the ‘fortification’ for your eCommerce part of the business.
28 November 2022 PHP 7.4 has reached the end-of-life date. To stay secure and follow PCI compliance, you should start using PHP 8.1 for your store.
However, to use PHP 8.1 your store requires to use at least the 2.4.4 version of Magento.
Functional bug fixes
Debugging and resolving issues inside the core of Magento 2 could sometimes be costly. Magento 2 upgrade may save you from such a doubtful investment.
New features - Adobe continues adding even more features to the platform. In my experience, using the feature available in the platform core is always cheaper than proceeding with custom development or using 3rd party extensions.
If you see desired features in the new Magento 2 version or in the roadmap, it would be a better solution to upgrade your Magento 2, than to search, install and maintain 3rd party code.
In the future, we should expect that more and more features will be added by Adobe as separate services. That would mean, that you would be able to start using them without upgrading the platform.
3rd party extensions support
In the same way as Magento 2 adds new features to the platform, 3rd party extension vendors enhance their products. The tricky part here is that in most cases they target to support the latest Magento 2 versions only.
When the benefit from Magento upgrades is something that experts talk a lot about, I would like to discuss a negative advice on how to increase the time your Development Team needs to spend on Magento 2 Upgrade.
A terrible piece of advice or how to spend even more time on Magento 2 Upgrades
Install more 3rd party extensions and never use them.
More is better, isn’t it? Make sure you have as many 3rd party extensions as possible.
Each installed extension would require investment in maintenance and support.
Do not uninstall those extensions that your business is not using any longer.
The more extensions you have - the higher the risk of incompatibility between them. As a result, you need even more investments in their support.
Do not use trusted vendors only. The worse code quality they have, the less active support they provide – the higher price you will pay to keep them up and running.
In any case, don’t upgrade 3rd party extensions before the Magento 2 upgrade. The more versions require updates, the more hours you will spend doing it.
Overall, upgrading 3rd party extensions takes 10-30% of the total Magento 2 upgrade time.
Customize as many 3rd party extensions as possible.
The idea of installing 3rd party extensions and customizing their features is really great!
The more complex feature you add to 3rd party code - the more time your Development Team will spend fixing them and making compatibility adjustments.
The majority of 3rd party extensions were not built with extensibility and customizability in mind.
Also, many 3rd party vendors do not follow the semantic version policy and often make releases with backward incompatible changes.
Having heavy customizations of them on your webshop is the right way to keep up to 50% of the total Magento 2 upgrade time.
Do not use PWA, make sure your built-in Magento 2 frontend is as customized as possible.
Overall, Magento 2 native frontend system is something that breaks most often during upgrades.
Custom frontend features (especially if they are built upon 3rd party extensions’ frontend templates) could cause a significant impact on upgrade cost.
I have had the experience when relying on 3rd party extension custom category page template with heavy customizations on Magento 2 Category Filters, which caused a re-write and re-style of the page almost from the scratch, after upgrading to a new version of that 3rd party extension.
PWA is a bad choice if you want to save as much time as possible (even if mobile users are a majority of your webshop traffic).
Having decoupled front end which relies on Magento Service Contracts (API) and not on templates files and layout instructions would simplify the upgrade process.
And this is not what we are looking for here, is it?
A customized frontend which relies on 3rd party extensions together with the upgrade of those extensions may give you up to 60% of the total upgrade time.
Keep your platform Technical Debt as huge as possible.
Do not solve technical issues which your Developer Team may highlight.
The more records regarding errors on the site available in logs - the more time they need to spend during Magento 2 Upgrade to figuring out issues.
Always choose ‘fast solutions’ during development, as they would cause problems with applying the new Magento Codebase. Avoid investments in refactoring malfunctioning functionality.
Double-check with the Technical Lead of your project that the Developer Team is not following Magento Technical Guidelines, coding standards, and best practices.
The less their code relies on the Service Contracts (API) layer - the higher the chance that new Magento code will bring backward incompatible changes.
Overall, resolving issues in custom functionality could take 20-30% of the total upgrade time on average. But there are no limits!
Make your platform a legacy legend.
Do not ask developers to make documentation of your project.
Frequently change your developer agencies without giving them a chance to share knowledge base and customization details during transferring of the project.
Hire freelance developers to build customizations on your website.
The less your current Development Team knows about the platform - the more time it would require them to figure out how the system should work and, as a result, more time will be spent on the upgrade.
Do not use any automated tests.
What could be better than to make sure that your webshop works as expected? Do it manually every time after the upgrade!
Autotests on different levels could make regression testing of your application automatic.
Tests require investments in writing and maintaining, however, they simplify the manual process of regression testing (re-checking that old functionality works as it should).
As our goal here is to increase time spent - regression testing during the Magento upgrade every time you proceed with it is the right way to get extra cost for the project! Moreover, your QA will be grateful by being busy for the next couple of days during manual and boring regression checks.
To sum up
Here we have collected the nastiest advice on how to increase the time required for your platform upgrade.
Not following them would decrease the cost of upgrade expenses and eliminate tons of headaches for you and your Development Team.
Overall, upgrade time for one patch (according to semantic version policy) version (e.g., 2.4.4 -> 2.4.5) takes 5% of total development time (100h on 2000h of development) on average.
I would recommend being ready for at least 1 annual upgrade and always installing the latest security patches on your current Magento 2 version.
However, Adobe is working to decrease the number of patch releases during a single year. According to Adobe Commerce Release Schedule, most likely 2023 would come with 2 patch versions: 2.4.6 and 2.4.7.
At vConnect, we are providing a Magento 2 Upgrade audit and could make an estimate of how much it would cost to upgrade to the newest Magento version.
Also, we have experience with upgrades of different complexity and could provide you with the most optimal upgrade strategy for your store.