We talk a lot about software modernization. Other terms for the “modernization” concept include: rewrite, re-architect, re-engineer, retool, rework, re-implement, rethink, update and others. But what exactly is happening to your software, and what does modernization mean for your business?
How Software Ages
In order to understand how software ages, we have to understand first that software is not a physical object or a mechanical device of any sort. Software is the formalization into code of a set of logic. This means that software encapsulates ideas, and just like those of Socrates, ideas do not age. But the way to express them does.
In that software is a communication tool, that tool does age. But not in the absolute sense how a physical object would age. Software ages in relation to its technology context. As new communications tools are invented, the ones that previously represented the best solution slowly become obsolete, not because they are worse, but because the current tool is better. The way we like to think about this slow transition, is that if software were a painting in a frame, the painting is not getting older, but the frame is getting newer. The software remains the same, but its surroundings are constantly modernizing, which makes the software look old in relation to its frame.
There are two primary drivers for this aging effect. First, technology platforms (the raw materials from which software is manufactured) are constantly changing. Platforms regularly go through major revisions which push the bar higher and depreciate older versions that can no longer reach the new standard. Second, businesses are innovating at a rapid pace, even outpacing the rate that software can be adapted. Sometimes these innovations come in the form of a “pivot” or fundamental shift in the business model, which renders existing tools ineffective. In both cases, the forward movement of technology results in a relative backward movement of a software solution, even though it is remaining still.
It is up to you and your business to determine how, and when, to react to this changing universe. Being aware of key business drivers and maintaining realistic ideas of what you can do will help you accomplish this in a sensible fashion. For more information, read about software modernization pitfalls.