According to wikipedia “technical debt (also known as design debt or code debt) is a concept in software development that reflects the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer.”

Many of the merchants we’ve engaged in project discovery discussions in preparation for migrating to Magento 2 have been faced with serious technical debt from Magento 1.  The story usually goes something like this…”we have a lot of Magento 1 extensions and customizations that have built up over time…so much that we don’t actually know what extensions are even still needed…and now every time we need to upgrade, or patch Magento 1 it takes a long time, because stuff breaks and out of date extensions and customizations have to be upgraded or fixed”. 

It’s not uncommon for these merchants to have annual technical debt costs that are 25-50% (or more) of the initial site build.  Over the span of a few years this debt becomes a serious factor in the total cost of ownership and makes Magento a not so economical solution.

So how can merchants now migrating to Magento 2 avoid building all the technical debt that we see with Magento 1?  Below are a few guidelines for steering clear of technical debt on Magento 2.

Minimum Viable Product (MVP)

The big idea here is to start with the “must haves”, those extensions or customizations that are absolutely necessary in addition to the base Magento product.  We recommend merchants build a new site with the bare necessities and launch that first. Once the site is live we recommend closely monitoring user engagement with tools like Google Analytics, Hotjar (session recording) and techniques like A/B testing.  Following that process makes it possible to then hone in on feature improvements that are truly needed and sure to provide a return on investment.. 

We’ve seen a lot of extensions installed to Magento 1 because the merchant was trying to copy the user experience of mega brand ecommerce sites.  While it would be nice to have a site with all the features of rei.com, target.com, walmart.com and amazon.com combined, it often is not practical and all those add-on features (extensions) lead to very little or no improvement of site usability and conversion.  Mid-sized merchants are much better off with a minimalist approach (MVP) to add-on features so they can focus their efforts and budgets on better marketing, product catalog content and merchandising.

Template Edits Instead of Installing Extensions

Let’s say a merchant wants to fully expand the filtered navigation (shop by functionality) in Magento 2.  There are several extensions or 3rd party themes out there that could be installed to achieve this design.  However, some simple CSS edits could also be made to the template to achieve the same design. Those CSS edits will be much lower cost to maintain over time and might not need to be updated for 5 or more years.

So for front-end customization, it’s always good to consult with a developer first before using an extension.  The customization might be much more efficiently achieved by simply editing the Magento template files.

 

Don’t Use 3rd Party Theme Template Extensions

While it may be tempting to purchase a theme template extension for your Magento front-end user interface (ie. from Theme Forest), using a theme template can lead to a large amount of technical debt.

These templates are extensive in that they assume complete control of the front-end. They are usually a compilation of 20 to 30 3rd party extensions, plus customization.  Most, if not all, of the code for these extensions is developed by low cost developers and can have some or all of the following issues:

  • Code bloat (loading lots of unnecessary javascript libraries etc…)
  • Doesn’t follow best practices
  • Slows performance speed
  • Javascript conflicts
  • Doesn’t work correctly with Magento or with Varnish cache
  • Disables native Magento features (ie. widgets, click for price, content staging, etc. 

Even though theme extensions seem to contain a lot of value for all the options and features they provide, their technical debt almost always outweighs their advantages. In our experience it is much better to take a less invasive approach to front end theming. This can be accomplished by only making CSS edits and leveraging a minimal amount of customizations and extensions to achieve the right look ,feel and required features.

Purchase Extensions from the Same Company

When possible it’s a good idea to purchase extensions from the same company.  This typically ensures compatibility between all of the extensions that you purchase.  Some of the larger extension providers like Aheadworks have many quality extensions for Magento that are usually compatible with one another.  So if for example, you are looking for a more robust search solution, a homepage hero banner slider, a blog and advanced add to cart, you could buy several of their extensions and avoid compatibility issues that might otherwise exist if you were to purchase all of these extensions from separate companies.

 

Vet Before you Install

    Here at InteractOne we have our senior developers review the architecture and code of extensions before we approve them for install.  It’s easy for a good Magento developer to spot a shody Magento extension by checking its architecture and code. We’ve saved our clients from many low quality extensions through this practice.  If the extension is low quality we send it back to the provider for a refund.

    Housekeeping

    Scheduled, periodic review and cleanup of a Magento site is a best practice that can save a site from becoming bloated or unstable as it matures.  It’s a good idea to review all the extensions in use on a Magento site on an annual or bi-annual basis to ensure old unused or unstable extensions and customizations are being cleaned up, fixed or removed.

    It’s also important to stay up to date with the upgrade releases from Magento and extension providers.  While it’s not necessary to always be on the latest minor release we do recommend never getting more than 2-3 minor releases behind.  Staying up to date ensures security is maintained and extensions are not getting unstable as browser and mobile technology is always advancing.

    Letting a Magento site get a few years behind in releases can end up requiring two to three times the normal effort to upgrade as old upgrade paths are not always well supported by extension providers. Additionally, the launch of a really big upgrade jump can be nearly as complex as a new site golive since there are so many major changes to factor and test for.

    While this list of recommendations for avoiding technical debt with Magento is not all-inclusive it does cover the key points that should help you keep your Magento 2 site running fast, stable and secure for years to come.


    If you’d like to discuss the status of your site or you are ready to migrate to Magento 2, we would be happy to schedule a no-obligation initial consultation. Drop us a note.