Technology moves incredibly quickly — and it's difficult to know how to keep up. Particularly for large companies that have seen success over the last decade, there seems to be a sustained pressure to be constantly evaluating new technologies and attempting to introduce them in order to stay competitive. This pressure is often overpowered by fear of short-term risk, bureaucratic barriers that make it daunting to introduce a new tool, or a lot of times simply because it never feels like the "right time".
While modernization initiatives often don't land in the "urgent" quadrant, it's incredibly important for a company to develop a comprehensive strategy towards it. Here at Cortex, we've helped a fair share of enterprises do just this. In the post below, we offer a set of best practices we've collected and some supporting guidelines for your team as you develop a modernization strategy.
First, let's define what we mean — and DON'T mean — by modernization. At Cortex, we've developed strong conviction that modernization means two things:
The second point here is key. Modernization does not necessarily mean adopting shiny new technologies - it also means adopting modern software development best practices beyond tooling. Per this definition, modernization can look like any of the following:
While these may be popular examples, they are by no means prescriptive. What modernization needs to deliver for your team is most important, and that can take a variety of forms.
If done right, modernization comes with a plethora of benefits. To list a few:
For teams committed to taking on modernization initiatives, it can be hard to know where to start. We'd encourage your team to start with two critical questions:
All of these answers are fair, but they're specific to your team and should guide the approach you ultimately end up taking. There’s no one-size fits all strategy for modernization. Engineering leaders should understand their specific goals before embarking on this journey.
A tenet of modernization that we at Cortex find critical is standardization. As we've said:
"Establishing consistency in the way microservices are built can [...] help you massively improve developer velocity, reduce operational overhead and minimize the complexity of your platform."
If you use Cortex, you'll find service templates to be a powerful feature towards this effort. With service templates, you can create a templated version of boilerplate code (e.g. test files, CI/CD scripts, project scaffolding) that you can then reuse to create a new microservice. To use a template, run a single command generates boilerplate code for you.
We care deeply about helping our customers find success in modern tooling, and we've found that standardizing the creation of a new service significantly lowers maintenance burden and makes it easier for your team to scale.
We like to say that modernization is a mindset more than it is a black-and-white goal. If you're not sure where you stand, think through some of the following questions as litmus tests:
Modernization can look different across different teams, and we're here to help you get there. If you're interested in continuing the conversation, book a demo or send us a note at email@example.com.