👉 How do you approach risk evaluation in such cases?
When I worked with clients who had outdated, legacy, or unsupported technology (like really old versions of Kentico), it was often difficult to communicate the risk when there were few examples of problems.
For example, if a client was using Kentico v6.0.0 in 2020, they were years out of support, but when their Kentico project ran well enough and didn't have bugs that impacted them beyond annoyance, the cost of an upgrade to the new version outweighed the incentive of new features and official support.
Clients who were in regulated industries, had initiatives to adopt new technology, or had their workflows regularly disrupted by bugs that couldn't be fixed were all interested in upgrading because the cost investment had a clear value.
I could say, "Your version of Kentico is unsupported and could experience unfixable security vulnerabilities", it only had an impact if:
- They believed security vulnerabilities could realistically happen.
- They believed security vulnerabilities were a risk to their business.
Some didn't believe 1. because they hadn't experienced a security issue before - survivor bias, I guess. Some didn't believe 2. because they couldn't imagine what types of things could happen if security was exploited.
👉 Do you have a structured way to decide between hardening and replatforming?
Typically, this was based on digital maturity. A client that bought Kentico in 2015 who, in 2020, believed updating web pages was "digital marketing" or "content marketing" was clearly not digitally mature. The often could not see the value in doing anything (hardening also cost time and money).
When they did make a decision there was a common result. They left us as an agency and adopted a simple, free, open-source CMS because their marketing team (or maybe the organization leadership) could not see the value of investing in their digital presence or valued shrinking costs and budget.
👉 What criteria make migration non-negotiable for you?
It was always a decision of the client. As their technology partner, we worked to give them the best information so they could make informed decisions. We didn't have non-negotiables because it wasn't our decision. We did use incentives, like cost to fix bugs or security issues, turnaround time, SLAs, etc... and often these incentives would drive decisions (but not always).