The computer and software development industries are always focused on the Latest and Greatest as well as the Next Big Thing, but the businesses that utilize software are focused on trying to get a Return on Investment. These viewpoints are competing, if not mutually exclusive. As a result, the computing environment is always moving forward, and business applications are always falling farther behind.
Many businesses still don't understand that investing in software, particularly custom software, is an ongoing commitment. At the current pace of technology, software applications have a useful life of about 5 years. That lifespan can be stretched to 10 years, but you'll be jumping through hoops just to keep the application limping along there at the end.
It's not just about the money
In the meantime, the business has not only invested money, it has often developed a large business data asset that depends upon the application. Not to mention the investment in training to develop user expertise. Moving to another application generally means completely losing the training investment and facing a difficult or impossible data migration.
Upgrading an application can be just as challenging. It is rarely possible to import the old code base into the latest development tools, and even if it is possible, it usually produces poor results. Remember when developers tried to convert classic Visual Basic applications to Visual Basic .NET? Sure, Microsoft gave you a migration tool, but it was maybe an 80% solution that left you with a really crappy .NET application.
New development tools reflect new development practices that take advantage of new capabilities in the operating environment, so the old application code must often be completely replaced.
Unfortunately, most businesses look at the investment in any software as a one-time expense. But the truth is that even off-the-shelf software has to be upgraded fairly frequently. Even though nothing changes with the software itself (it's not like the code "wears out"), the operating environment changes. The business has to move to new computers and new operating systems because the old ones are no longer supported. Eventually, the system facilities that support the application simply don't function any more, as we are starting to see right now with 32-bit applications on 64-bit computers.
The business environment changes too
So far I've only described the changes on the technical side, but the business side changes as well. While many of the core business requirements may remain consistent, applications often need to adjust to new requirements that are brought on by changes in the business environment. I'm not just talking about usability enhancements here, I'm talking about complete changes in the way information is collected and analyzed.
Eventually, something has to give, and it's usually an emergency when it does. One day, the application can't be installed on that new computer you just bought. Or the auditor says you aren't keeping proper track of some critical piece of business information and could face fines or legal action. Management goes up in flames, and the IT staff works around the clock to come up with a solution fast.
Get a handle on the problem
How do you prevent an emergency like this from happening to you? I have a saying: you can't plan for the unexpected, but you can expect the unplanned.
The first step is to realize that maintaining your business data assets is a circular process, not a short, linear one. Whether you use off-the-shelf software or develop your own, the application requires a regular evaluation and maintenance schedule. It may not be necessary to take action every time through the cycle, but ignoring the need for the cycle eventually leads to a meltdown of some variety.
The second step is to recognize that the true value of a business application is in the data it stores and the interface it presents to your users. The data repository and the programming code may be completely replaced over time, but the integrity of the data and the familiarity of the user interface are assets that have tremendous long-term value to your organization and a big impact on your day-to-day operations.
Your best protection from the ever-changing technical and business environment is to keep an eye on things. Get out of the "we'll upgrade when we're forced to" rut and put upgrading into your schedule where it can be managed gracefully.