Moving to version 12 is for most developers, architects, and key decision makers the largest upgrade undertaking you have had to take in your time on the platform. Optimizely prides itself on continuous releases & the ability to upgrade a solution in an affordable and timely fashion. In this 2-part series we will present the factors involved in the upgrade and in the next entry we will outline the benefits and business case for getting onto Version 12.
So, what changed this time around and why might I need to build a business case around it?
.NET Core
For starters, the .NET Framework has been replaced with .NET Core. This sounds simple on the surface, but take an existing solution, upgrade it, and see just how many errors this produces. It should not be a surprise that this will affect a LOT of code. You will have to go back over your custom code and update everything. Although much of this is trivial, it is time consuming.
Infrastructure
One of the advantages of moving to .NET Core is portability. Your Optimizely solution is no longer required to run on Windows and Optimizely DXP has taken advantage of this to move to Linux instances. So along with new code, this move entails a new set of underlying instances in which it is deployed. This move is largely transparent from customers. But is part of the process and requires planning. You will want to notify Optimizely so that they can set up your new environment in advance of deploying the new solution.
How much of an undertaking is this?
Short answer is large. Unlike previous upgrades, this one is not going to be accomplished in a single sprint. When approaching an upgrade of this magnitude it is better to almost think of the move like you are porting a website or application and break it down in this fashion.
You will want a 2-3 developer team to get this done in as few sprint cycles as possible, while also keeping responsibilities coordinated. If a large enough effort, bring in additional team members to help. Otherwise, you run into the issue of needing to maintain 2 separate code bases simultaneously for an extended period of time.
The other factor is content & testing. Treating this like a new site launch, you should perform both a content cutover as well as a full UAT cycle for testing. Thoroughly test integrations points in addition to content. Even if the code around these integrations has not been updated, remember this is new infrastructure and is susceptible to similar adjustments as the initial site launch. As a matter of fact, if a testing plan was created for site launch, it would be a great time to break it out again & ensure it is updated.
Tech Debt
Architects and developers will likely find this the most pressing need for an upgrade. There are no immediate concerns regarding support for pre-V12 instances of Optimizely. Optimizely has not set any cutoff dates and your instance will continue to operate as it does currently without an upgrade.
However, it should be noted that delaying an upgrade does add to tech debt. Bug fixes, compatibility with addons & plugins, support for connectors, and other factors will eventually become a factor. By delaying an upgrade, you are indirectly putting your solution at a disadvantage and making it more difficult to support moving forward. This can be fine for the short term, but the longer the upgrade is delayed the larger a project it ultimately becomes.
Rebuild vs. Upgrade
The final consideration involves whether to just rebuild and relaunch old sites vs. upgrading them. This is a complex decision with a complicated answer. Context is key, and on a case-by-case basis you will have to consider what makes sense.
Arguments that could support a rebuild or delayed upgrade
- Is a redesign planned for the site over the next 12 months?
- How out of date is the current site? Version 10 or much older?
- Is this a small site that may go away or be rolled into a new site as part of another initiative?
Arguments to support upgrading now
- Is this a high traffic site that is core to your business?
- Is the current site slow or suffering from performance issues?
- Are you looking to take advantage of other Optimizely products?
- Are you making extensive use of connectors or addons?
In part 2 of this series, we will look deeper into some of these considerations as well as outline the benefits of the upgrade to help build a business case.