Longevity. Not something I heard a lot about from developers that used to meet at those events we used to call “face to face meetings” – pre Covid 19. When I started coding in the mid 80’s – an application had no real shelf life. If it was fit for purpose – it kept on going. Then as years passed the idea of technical debt and the changes in architecture and operating systems meant that an app could simply die out because nothing or no-one supported it. The move to “apps as a commodity” which seemed to accelerate to the point that when you talked to other developers – they had almost “killed” the app they were working on before it even got into production and were looking at the next “version” or iteration before the “paint had dried” on their creation.
As part of my career I have been part of many projects to replace aging applications but have often found that keeping the application alive until it can be replaced can be part of that challenge. Indeed virtualisation allowed me to satisfy a client need to keep a legacy system available for several years after it stopped being in production. Recently I had a requirement to resurrect an application that a client had used previously – in order to look at the viability of re-expressing what it did in a local country context – in a more global and international way.
The development of various emulators I have seen over the years – allowing once common platforms and apps to live on in a virtual sense – has always reinforced my faith in our ability to retain some access to the past systems as we race to replace them. So it was with a touch of relief that I was able to bring an application that probably hadn’t run in 7 years back into a software development discussion with the excellent Dosbox. The client can now take an old idea and modernise it as they see fit.
I suppose the point I am making is that part of making software that lasts is looking at what makes some apps and platforms last much longer than others in the first place. Too often we look for something new – when the feature we want is already in applications that have been discarded.