Stop me if this sounds familiar. For years now, you have had a working system in place at your company or organization. Though recently, you have started noticing that your system is beginning to lose some of its luster; between program start up times, reboots, and crashes – the user experience seems to be fading. There are several reasons which may cause your system to start slowing. Here is a 5 Common Problems That Aging Systems Face Infographic that showcases some of those reasons. So here is one simple question…
Is it time to rewrite and redesign your current systems?
Throughout this post you will see some problems and solutions to situations similar to yours. These will hopefully help you decide if rewriting your system is right for you.
First, Your Options.
When rewriting a system there are 3 main options.
1) A Full System Rewrite
2) An Incremental System Rewrite
3) A Rewrite of Just the Major Components of Your System
A Full System Rewrite.
Of course, rewriting your full system will be a large project and most likely costly. Though, if your system is built on old technologies and it has become a hassle in itself to maintain the system, then maybe a full rewrite is what you would need. If the system is so complex or the code is messy due to years of different developers working on the project or just low code quality, then a full rewrite might take just as much time as a rewrite of the major components anyway.
A full rewrite would also allow you to remove pieces that are slowing the system and potentially add new features that users have been requesting more efficiently. Fair warning though, if you cannot duplicate features that have been built already on the system and your users have come to understand and appreciate, then a full rewrite may not be a good choice for you. However, with updated technologies and techniques comes the potential that those features could have already been optimized and implemented more successfully since the time when your system was initially created.
Another huge benefit that comes from a full rewrite is that you can create your system with a “whole-vison” concept. Meaning you can plan to build for the future, instead of continually building upon the old system and trying to make an old dog learn new tricks. Although a full rewrite has larger risk associated with it, it also has more potential to create something amazing that will better benefit you, your company or organization and your users for years to come.
An Incremental System Rewrite.
There is also the option to rewrite your entire system, but in incremental stages. This is usually a choice supported by developers who have done these types of projects in the past. It is the supported choice because the system can continually function how it always has with small upgrades or updates happening periodically compared to a major rollout.
An issue arises when you consider the time and cost. An incremental system rewrite will take more development hours over a longer period of time and, in turn, more costs will be associated with the project in the long term. Incremental system rewrites can be costly, but your budget can be broken down into multiple funding periods. Therefore, it may be easier to justify to your executives to fund incremental rewrites rather than fund for a full one-time rewrite. If your rewrite has a long term backing by the executives and funding of your company or organization, then an incremental rewrite could be your choice. You just do not want to start incrementally rewriting and redesigning your system and half way through back out and be left with a system that is half modern and optimized and half ineffective and outdated or worse, half that is not functional.
A Rewrite of Just the Major Components of Your System.
The third option is to rewrite just major components of your system instead of rewriting the whole system. This option is a client favourite because it involves less of a time and funding commitment; time and money make people happy. However, certain factors must be considered when rewriting major components only.
- Do you truly know your system? In many cases older systems have certain components that are so rooted into the code of the system meaning that changing one thing could trigger a cascading effect on many or all aspects of the system. If you don’t have an overseer who knows the full system or complete documentation, then issues could arise.
- If you do choose to rewrite just the major components of your system, they should be rewritten from scratch; old code should not be converted. Consider if this would take as much time as a full rewrite. If it will most likely take the same amount of time, then there is no benefit to rewriting just the major components.
You have to consider these factors when choosing which type of rewrite your system needs. An important question to ask yourself – “Is it better to build something brand new or keep building on top of a system that uses old technology?”
Systems will age, that is inevitable. However, you proactively looking into ways to help prolong your system and continue to help your business or organization grow is a great first step. Aging systems can be maintained and with our help, together, we can help you decide what the next best course of action is for your individual situation. From analysis, to planning, to building, to implementation, to support and training, we will work with you every step of the way to ensure your system is functioning at its peak ability.
To set up a free analysis with one of our team members, please fill out the form located on our Legacy Systems Upgrade.
Have any questions or comments? Have anything you would like to add or change? Feel free to let us know in our comments section below.
And as always, thanks for reading!