Of course, its never code in isolation so the whole ecosystem of stakeholders, technologies and systems evolution needs to be addressed.
But, at the end of the day (& all day long) we're programmers - manifesting code to achieve results - and we deploy whatever is needed along the way. (so we're also consultants and educators and providers of hardware, software and all the deployment needfuls)
LanTastic Networking (circa 1990s) with Coaxial cable and manual interrupt configuration has given way to zero configuration Wifi and managed plug-and-play office switches.
DOS, Windows3.1, WindowsNT, Windows 95/98/ME, WindowsXP, Windows2000, Windows Vista, Server2003, Windows7, Server2008, Windows8, Server 2012, Windows10, Server2016... a new Microsoft Operating System on average every 2 years over the last 30.
Databases, Accounting Systems, Cloud Technology, Web App Technology, Servers, Workstations, Mobile devices, Networks, Backups, Security, AntiVirus...
...all on the endless shifting sands of evolution that we navigate every day for our clients.
Maximising the lifetime of the system provides return over a longer period and minimising the cost of incremental change lengthens the lifespan and minimises maintenance costs.
The issues with platform evolution (changes to the stack over time) and eventual end of life are critical to tackle if you want to maximise return on investment in business systems software. All software will eventually see its last user.
The length of time it takes to get there depends on:
Technology - especially software, is a team sport. A software program relies on a 'stack' - other programs and hardware it requires in order to run properly. For example, a complex Excel Spreadsheet is at the top of a stack, requiring a particular version of Excel, a compatible version of Windows to run Excel on, and a compatible PC or Laptop or Tablet to run Windows on. If any of the levels in the stack fail or become incompatible, the program doesnt run anymore - and needs to be maintained or rewritten for the new stack.
If you do it right, it is possible to avoid the trap that most software falls foul of - the inability to adapt. Requirements change constantly. Software has to keep up or it has to be replaced. If the future maintenance of the system is of lower priority than features, the costs per adaptation increases exponentially over time, until the software cannot be economically adapted and must be replaced.
Our passion for problem solving drove us to seek meaningful challenges in software, hardware, and deployment on behalf of our clients.
Outback Software is the pure product of our Project Passion - our drive to achieve results for our clients.