New Year’s resolutions are for a year ahead, but with the start of a new decade it is worth looking a bit further.
How many of the software systems we use today will be around in 2050 — or even 2030?
Story 1. This morning the BBC reported that NHS staff need up to 15 different logins to manage ‘outdated’ IT systems and I have seen exactly this in a video produced by a local hospital consultant. Another major health organisation I talked to mentioned that their key systems are written in FoxBase Pro, which has not been supported by Microsoft for 10 years.
Story 2. Nearly all worldwide ATM transactions are routed through systems that include COBOL code (‘natural language’ programming of the 1960s) … happily IBM still do support CICS, but there is concern that COBOL expertise is literally dying out.
Story 3. Good millennial tech typically involves an assemblage of cloud-based services: why try to deal with images when you have Flickr … except Flickr is struggling to survive financially; why have your own version control system when you can use Google Code, except Google Code shut down in 2016 after 10 years.
Story 3a. Google have a particularly bad history of starting or buying services and then dropping them: Freebase (sigh), Revolv Hub home automation, too many to list. They are doing their best with AngularJS, which has a massive uptake in hi-tech, and is being put into long-term maintenance mode — however, ‘long-term’ here will not mean COBOL long-term, just a few years of critical security updates.
Story 4. Success at last. Berners-Lee did NOT build the web on cutting edge technology (an edge of sadness here as hypertext research, including external linkage, pretty much died in 1994), and because of this it has survived and probably will still be functioning in 2050.
Story 5. I’m working with David Frohlich and others who have been developing slow, meaningful social media for the elderly and their families. This could potentially contribute to very long term domestic memories, which may help as people suffer dementia and families grieve after death. However, alongside the design issues for such long-term interaction, what technical infrastructure will survive a current person’s lifetime?
You can see the challenge here. Start-ups are about creating something that will grow rapidly in 2–5 years, but then be sold, thrown away or re-engineered from scratch. Government and health systems need to run for 30 years or more … as do our personal lives.
What practical advice do we give to people designing now for systems that are likely to still be in use in 2050?
This is the best advice I can come up with:
– make sure you and the key financial stakeholders understand that it WILL need to run for 40 yrs
– do due diligence on suppliers, service providers, etc.
– don’t be an early adopter- select technology with a large user base BUT recognise that it won’t be popular or supported for ever
– plan for obsolescence – have people on your team whose job is to look beyond the horizon, identify when tech starts to die and identify alternatives. This means your team needs some slack built in and that means your operations won’t look lean. Good luck getting that past the board!
– if you must outsource development or buy third-party services, make sure you have people on your team with the tech skills necessary to understand these at a deep technical level
– maintain a generous training budget
– and of course architect your systems to be loosely coupled with well-defined interfaces
Alternatively: Don’t worry. AI will change everything anyway :-@
It looks like the old maxim that no-one ever got fired for buying IBM wasn’t as daft as it sounded!
Interesting article…. (I’m not a computer scientist, software designer, etc.) Makes one wonder, as per Story 5, how might advances in machine learning, AI, etc. affect these challenges?