Tuesday, May 14, 2013

5 clues that it's time to rewrite your software


A software rewrite is never an easy task. A rewrite consists of taking an existing software and rewriting it to better accommodate the client. Although, it can be quite tedious, it is often necessary. In this post, I'll explore certain clues that can help indicate when its time to consider rewriting your enterprise software.

The common reason:  "its time we changed, we built it 5 years ago" isn't valid by itself. If you've maintained and updated your software through out the years, chances are its still a valid and acceptable solution today. Age by itself is not a reason but can often be an indirect reason why you should rewrite your software. There are many things to take into consideration. One of which is that rewriting a software years later will probably cost way less than it initial cost.

Software Development Progression:
A software built 10 years ago could cost 5 times more than it would cost to build today (dummy data)


Here's my top 5 clues that its time to proceed to a software rewrite

1- You don't dare modify your current software

A well designed software should not only be durable but must also be easily modifiable. An enterprise software solution should be updated regularly to meet the enterprise's evolution. 

Therefore, if you haven't updated your software for any reason (fragility, cost, etc.), it's time to investigate if it isn't time to change that software altogether because chances are its not meeting your exact needs today.


2- The modification cost is very high

Technology evolution tends to facilitate the software development. For instance, a web site that could take months to put up a few years ago can take just a few days using modern technologies such as WordPress. So even though your software is up to date and still works fine, its possible that every change, as small as it may be, can take a lot of time and cost a lot of money. Its not necessarily because the software wasn't built correctly. It simply means that there might be more recent technologies that can help you diminish those costs.

If you've noticed that maintenance and evolution costs for your software are very expensive, it might be time to investigate a rewrite.


3- You can't find a company or consultant to take over your software development

Technologies are evolving quickly and many programming languages are losing traction. Cobol, for instance, isn't as popular as it used to be. Yes, some systems still run on them but since there aren't that many such systems, Cobol programmers cost a lot more than, say, mainstream Java programmers.

Again, if you're having trouble finding suitable people to take over or maintain your software solution or if the price is too high, you need to start thinking about what it would cost you to rewrite your software and diminish your costs in the long run.

4- You patch your software with Excel spreadsheets

Classic! Creating databases directly in Excel is the classical way for small and even large businesses to fill the gaps of their existing software solutions. Excel is not a database! Yes you can keep some information in there but the info is not indexed, normalized or available in a proper collaboration tool.

Ideally, you would fill those gaps in your existing software solution allowing you to centralize your data and manipulate it with more ease. By adding Excel sheets (or any other patch), you're filling in a gap but delaying the problem. You're adding a complexity in your overall infrastructure that can end up costing a lot if you depend on it.

If you use Excel spreadsheets as a database, its a definite clue that your software should be updated... and if you're not updating it...then go back to point 1 :)

5- Your operation productivity is in shambles

In my honest opinion, the goal of your software solution is to encapsulate and simplify your operation process. If you find that your operations could be optimized but are not because you're following the process put forth by your software, you're definitely facing a clue that you should change your software suite. Software should adapt to you, not the other way around. As a business manager you need to find ways to optimize every area of your business. You also need to put forth tools that will help you manage these optimizations. If your tools aren't tailored to your operations, you're probably losing some money in the process.

Don't forget that I'm putting forth clues and not diagnostics in this article. Your business might well meet all the above criteria and you still might not need to rewrite your software. But if it does meet one of these criteria you should at least look into it to see if you shouldn't put forth a plan to eventually rewrite. Remember that a good software solution can make a huge difference.