How We Remove The Pain Of Tracking Dependency Updates
As with cars and other types of complex machinery, software needs regular maintenance to remain in good working order. At Rocketmakers, we’ve recently invented a new technology which makes this process much easier.
Modern software is made up partly of other bits of digital technology, like JavaScript or Terraform, that run critical parts of an application. These are known as “dependencies,” and, like every digital technology, dependencies are updated on a regular basis to improve security and performance.
Updating a dependency usually improves an application, but if these updates are put off too long, or ignored altogether, it can lead to serious problems over time (and is itself a form of “tech debt”).
For example, when a new software application is first released it might use the latest version of js.node for the backend. Over time, new versions of js.node will be released as shortcomings and vulnerabilities are detected in older versions. Not updating js.node will eventually cause performance problems, and expose the application to security issues.
An application can have twenty or more dependencies, so keeping track of which version an application has can be a real headache. This is especially true for support teams managing dozens of applications. Standard practice is just to keep an updated list on a spreadsheet, but this is far from ideal for monitoring a complex, dynamic system.
How Rocketmakers monitors dependencies
For several years, the Rocketmakers team has been inventing ways to manage dependency updates more efficiently. A new tool we’ve developed has come online in the past few months that is having a huge impact. We call it BitRot.
When we provide ongoing support for an application, one of our most important jobs is keeping track of each version in each dependency. When a new version of React is released, it first needs to be tested to make sure it will be compatible with the rest of the application (it’s entirely possible a new version could cause an unwanted knock-on effect to other systems). Once we’re sure it’s safe we will update the live version of the app, known as the “production” version.
Keeping all of this straight can be a nightmare, which is why BitRot is so useful. It pulls the version number of every dependency in every application we manage, and displays them on a single dashboard. Crucially, BitRot also keeps track of each project's “branches” (these are the previously mentioned testing and production, plus many applications have a development branch for creating new versions).
At a glance we can now see the version number of every dependency in every app we provide support for, helping us ensure every app is updated as soon as possible.
How BitRot can help you
To perform well over time, every digital product needs a well-designed maintenance plan. We always recommend planning this even before the development of a new app begins.
Having the ability not just to design and build amazing new digital products, but also maintain and improve them over time, means Rocketmakers can be an ideal technology partner for almost any company.