When Software Slowly - then Suddenly - Gets Outdated
In my time as consultant I’ve seen many companies and software systems. One recurring theme was outdated libraries in self-written software.
And I can see where this comes from: Engineering departments are there to deliver great features that clients can use. Especially when you are still struggling to find product-market fit - you have to deliver!
Upgrading your frontend library from version 1.0.1 to 1.0.2 - that’s not a priority. Software maintenance is an afterthought. But once you get used to not upgrading - you’ll skip minor and finally major upgrades as well.
Users Will Notice
Then you get a call from one of customer support. One of your users noticed that you are running an outdated frontend framework with security vulnerabilities.
You check your codebase and discover that you skipped a couple of major versions. Even worse - one of your frameworks is end of life and there is not update available.
You did not upgrade the software for years. Libraries are incompatible. Frameworks have been deprecated. No upgrade path is available.
The Upgrade Hell
If no direct upgrade path is available you have to rewrite large parts of your software. This also means a lot of engineers will be busy doing only this. No new features for a while. And “a while” often means years. And the final rollout and upgrade will also be painful and potentially error-prone.
This is not something your teams enjoy doing. Some will even decide to quit your company over the long long long running upgrade and rewrite.
This is the upgrade hell. This is your upgrade hell.
A Better Way
For the teams I worked with I made it a rule to upgrade systems regularly. I think at Zalando or Seachmetrics we started calling it our quarterly “Love4TheSystems”. Cryptic. But everybody knew what it meant. Once it pops up in the team calendar the teams will create a story in the sprint to upgrade their systems and software. The first time this happens the team has to research which systems to upgrade. But after that’s done the teams get used to it and love it.
Sometimes Love4TheSystems will take some time. Especially when it comes to upgrading major versions. But it will shield you from a whole class of problems you don’t want to have.
Caveat: Do not only upgrade your software libraries, but also upgrade your Docker containers, Linux versions and anything that could be outdated.
Not updating your libraries and software will make you faster at the beginning. But after some time you’ll have to upgrade for e.g. security reasons. But then you might already have skipped some major version making upgrade extremely difficult. This puts you into the upgrade hell.
Don’t be in upgrade hell - upgrade your systems regularly as part of your Love4TheSystems task!
- Awesome photo on top by jeshoots