At what point do you "pull the plug" on an old system?
I know, there are lots of reasons why the system needs to be kept around and there is always the concern about where the money to redevelop the system is going to come from, but at some point you need to look at the system and say "It's been nice, but so long old buddy." When does this moment come?
You could look at things from a purely objective point of view and work out the cost benefit of a new solution. You examine the development costs of a new solution and compare it to the support costs of the existing solution. You can look at the risks involved with both the old and new systems and, if possible, assign a dollar value to the risks. Are you using technologies that are no longer going to be supported? At the end of the day you will end up with a chart showing you, in all likelihood, that it is more expensive to build a new system than to keep the old.
You can start going off into areas that are not as easy to quantify. How much will it cost the organization if a certain piece of functionality is not implemented? Can this even be quantified? What about staff morale? Is the current system lowering staff morale to such a point that you are in danger of losing key staff? Is it contributing to the turnover rate in your area?
Sometimes, though, even this isn't enough.
In the move Blade Runner the replicants, the "artificial humans", were built with a four year life span. At the end of that time they simply died. I sometimes think that this is what we need in some of our applications. Call it a Software Personal Directive. This would be a deadline after which the software is supposed to be replaced. Plan for it. Get ready for it. Announce it to the world, but most of all, understand that software doesn't last forever. As the technology changes, so must the software built on that technology. As long as we have constantly evolving operating systems, browsers and users, our applications are limited in life. We need to understand this concept and embrace it.
What is the right life span? The replicants were given a four year life span. In my opinion, critical, core applications need to be reviewed, examined and potentially rewritten every four years. Other systems are stable and probably won't change in twenty years. Yes, I'm complicating matters by not setting a single life span, but when have I ever taken the easy way out of a conversation?
No comments:
Post a Comment