Upgrading v rebuilding your Kentico website
Making a decision about whether to upgrade or rebuild your website is a lot like weighing up whether to renovate or rebuild a house. There are pros and cons both ways.
A major upgrade of your CMS platform can be a significant project, particularly if you are planning (or hoping) to use a lot of the features that come with each new version. At some point most of us find ourselves asking the question – do we upgrade what we have, or rebuild on the latest version?
Kentico versions explained
Kentico EMS (and CMS) have varied the frequency at which they release major versions slightly over the years, but generally they’ve followed the pattern of one major version released per year. By ‘major version’ I mean the main version number increases, for example from 9 to 10. There are smaller upgrades and hotfixes available for Kentico EMS which change the version number slightly, for example from 10.0.0 to 10.0.1, but this isn’t considered an ‘upgrade’ in the context of this article.
Just like all software, major versions of a CMS include new features, potentially removed features (if they’ve become obsolete) and ‘breaking changes’ to APIs and database structures, which may require developers to ensure the compatibility of any code that was written for the website which was built on top of the older version. In addition to new CMS features, they also almost always include significant improvements to performance, security, browser/device compatibility and usability.
What’s the difference between an upgrade and a rebuild?
Upgrading means taking an existing site and following a prescribed process from Kentico to update the platform from the older version to the newer version. No pages, templates, web parts or widgets are touched, unless they need to be in order to be compatible with the newer version.
Rebuilding means putting the existing website aside, and creating a brand new site based on the latest version. All of your pages, templates, web parts and widgets are then built again on top of the brand new version.
A useful analogy might be to think of an upgrade as a major renovation on your house, such as restumping or rewiring, while a rebuild is – as its name suggests – knocking it down and rebuilding it from scratch!
Anatomy of an upgrade
The standard process for an upgrade that Kentico recommends always follows this general pattern:
- Upgrade the core Kentico files using an official upgrade package from Kentico
- Upgrade the database using official scripts from Kentico
- Update any templates, macros, web parts, and custom code for compatibility with the new platform
- Load the upgraded site in a browser, which runs a range of additional automatic upgrade procedures and can take some time
The above steps must be repeated for each major version upgrade – it’s not possible to jump straight from 3.0 to 10.0 (trust me!).
Why would I rebuild?
Rebuilding might sound like a drastic move (and let’s face it, it can be!), but just like with a house, sometimes it’s an option worth considering.
For example, let’s say you’re currently running on a very old version of the CMS, or you have reason to believe that there is a problem with the current implementation. In other words, your current house is painted all the right colours, but it’s built on shaky old foundations, you suspect it may be full of termites, and it probably contains quite a bit of asbestos. You could renovate, but you’d end up replacing almost every piece of it anyway! Rebuilding gives you the opportunity to start again with a clean slate, and ensure that from this point onward you can be following best practices. It also gives you the opportunity to consider fixing some of the fundamental issues with the old site. Going back to the house analogy, you won’t be stuck with a door in the wrong place!
Or, perhaps you’re already planning on doing significant work on your site to take advantage of some of the new features an upgrade could give you. A common example here is that you built your original site on the basic CMS before Kentico EMS gave you an amazing set of marketing automation tools, and you want to go back and revisit your core functionality and implement personalisation or multivariate testing across the site.
Rebuilding is often chosen when it’s part of a long-term solution. While it may be a lot of work in the short term, if there is a commitment to the platform for a number of years ahead, and a roadmap for future work on top of the new foundation, then it can be the smart move as later work will be much smoother and the total cost of ownership can work out to be lower.
What to watch out for when rebuilding
Rebuilding is never as simple as using your existing site as a blueprint. You need to make sure you’ve done a comprehensive audit of the existing site and the requirements for the rebuild, or things can easily be missed.
The costs and time involved can also add up quickly with a rebuild. The original site may have been built quite some time ago and it’s easy to forget how difficult that particularly tricky part was to implement. Again, a comprehensive audit at the beginning can mitigate this risk.
Why would I upgrade?
The obvious benefit here is that it’s almost always cheaper, particularly if you are on a recent version of the platform, and/or you have upgraded the site before.
If the upgrade process goes quite smoothly and there isn’t much custom code to be adjusted for compatibility or any new functionality to implement, then there may be no benefit to rebuilding all of your templates and web parts. This is common for sites that were built quite recently, and are upgrading mainly to stay up to date and take advantage of performance, security and usability improvements, or the many improvements to the Kentico admin interface itself. Essentially, if you’re already happy with the functionality of your site, there’s probably no reason to rebuild!
Regular upgrades can also be a very good way to keep your codebase clean and up to date - in the house analogy it’s more like a spring clean! By upgrading regularly, each individual upgrade is much more likely to be straight-forward, and code compatibility much easier to maintain. Incremental adjustments can be easily made by developers to the code with each upgrade (following Kentico API Changes documentation), meaning you’re highly unlikely to run into any dreaded “breaking changes”, and build up far less technical debt.
What to watch out for when upgrading
If you haven’t upgraded for a while – or ever – or if someone else built your site and you’re not completely familiar with the custom code, then you could be in for some nasty surprises. The surprise can be limited somewhat by using tools provided by Kentico such as the code upgrade tool but it may not make the required work any easier.
How much does it cost to upgrade or rebuild?
This can be very difficult to answer generally. The honest truth here is that it can vary dramatically, and each project is likely to be different. However, for each project, it is definitely possible to come up with a very good estimate of timeframe and cost for upgrading (or rebuilding).
A rebuild, while often more time-consuming (and therefore expensive), can actually be easier to estimate with more confidence, as there are fewer unknowns. You’re in complete control of what’s being built, and there will be very few surprises as you’re not dealing with any legacy code.
An upgrade can vary wildly. A very small site on a recent version of Kentico with little to no custom code and a relatively small database may take just a few hours. At the other end of the scale, a large, heavily customised e-commerce site with multiple integrations with third-party systems such as CRMs or PIMs, all running on a platform several major versions old, will likely take a number of months.
As a rule of thumb, a rebuild will cost something similar to how much the development components of the original site may have been (but with lower risk), while an upgrade will start quite low, but increase according to the following factors:
- Number of major versions between current site and target version
- Number of Kentico modules in use
- Level of customisation of Kentico’s ‘out of the box’ features
- Complexity of custom code
- Integrations with third-party systems
- Volume of content or data in the site
- Level of (in)experience of the original implementer
Ok great, so... should I upgrade or rebuild?
If you’ve got a simple website on a recent version of Kentico (8+), with little to no customisation or integrations, and you’re happy with the design – it’s a no brainer. Just upgrade.
If you’ve got a clunky old code base, or thinking about doing a redesign or implementing some significant new features or functionality, then you should at least consider a rebuild as you’re likely to be rebuilding a lot of what’s there anyway.
And finally, just to confuse things...
... there may be a third option.
We’ve definitely seen situations where an upgrade was on the cards, and it made sense to do a fresh rebuild of an entire section of a site to take advantage of new features, yet there were very heavily customised sections such as complex intranets that would be a huge amount of work to rebuild. In this case it made sense to do whatever work was required to get the custom areas to work through an upgrade, and then rebuilding the new public-facing areas of the site.
If you’re still not quite sure which option to go for, it might be time to get in touch with your friendly local Kentico agency. (I hear the folks over at Luminary are pretty switched on about these things… ;))
Want more? Here are some other blog posts you might be interested in.
Creating a digital strategy roadmap
Creating a digital strategy roadmap
A good roadmap not only outlines what you want to achieve with your digital strategy, but sets out the detail of how you're going to get there. Here we provide guidance on how to do it, along with a downloadable Digital Roadmap Toolkit.
Social contracts: Working out how to work together
Social contracts: Working out how to work together
Popularised by agile methodology, a social contract provides a way for a team to decide what is acceptable behaviour to ensure everyone gets what they need.