I recently heard a term that captures why software systems become difficult to work with: ENTROPY.
Its origins are in physics and chemistry. Entropy is the tendency of a system to move to disorder.
Imagine a jar that has several neat layers of colored sand. If you shake the jar a little, the colors start to mix. Shake it a bit more, and they mix even more. And without much more shaking, you cannot even realize that there were layers to begin with.
That's ENTROPY.
Now, you can't keep shaking to get your layers back. You need to put some deliberate energy into the system to separate out the colors.
The same thing happens to software systems.
The shaking can come from anywhere, and it's not anybody's fault that it happens. Here are some examples:
1. Your data grows over time. Without any changes, the system becomes slow and potentially unusable.
2. Browsers upgrade regularly. Features that used to work in the UI start to have issues.
3. Libraries, frameworks, and operating systems are updated, making it more difficult for your developers to work with the system.
In all of these cases, there was no foul play. Instead, the environment provided just enough shaking to start mixing the colors.
So what's the antidote?
Deliberate energy put back into the system.
- dedicate time to upgrade and test new libraries
- regularly schedule time to test on new browsers versions
- review your telemetry to see when things start to slow down.
Supporting useful software is not a "one and done" activity.
But it doesn't have to take a lot of time. What it does require is some deliberate time to keep up with the surrounding environment.
And that let's your software keep Delivering Daily for your users.
🚀 Are you ready to start Delivering Daily?
Like, share, and follow for tips and techniques about Software Engineering, Engineering Management, and Leadership.