In some ways, redesigning a legacy system is easier than building an application from scratch. Chances are you will want to make more than a few improvements to your new application, but your existing application serves as a reference point.
You can use it to document the scope of functionality, processes, and steps that are in place currently, while identifying the areas to improve and features and functions to add.
With that being said, the cost of building any custom software really depends. In this article, we break down the typical costs as it relates to modernizing legacy software to give you an idea where your project might stand.
What Does It Cost To Modernize Legacy Software: The Short Answer
In our experience, the majority of custom software projects fall somewhere between the $40,000 and $250,000+ mark to design and develop the application.
It’s a broad range, and probably not that useful if you are ready to put a number in your budget. That’s because software can mean anything from a calculator on your phone to a full enterprise billing system that supports millions of users. No two custom-built applications are the same.
Because legacy systems tend to be larger applications and involve some degree of data migration, assume the upper half of that range as a general starting point.
To get a better idea of where you might fall on the spectrum, below are the factors that we find have the biggest impact on a project’s cost.
Biggest Impacts on Software Cost
This one is straightforward. The more screens/pages you have, the more work that needs to be done to build your application, and the more expensive it will be to deliver.
Small applications range from 10-25 screens, medium is in the realm of 25-40 and large is anything more than 40.
What constitutes a screen? Generally, you would count anything that the user sees when they first come to your application, and then each unique screen behind every button click, link click, or menu click.
Just so you know, a screen to view customer information and a screen to edit customer information are two different screens, even though they show the same information.
Complicated logic means more time coding and testing. If your application performs a lot of heavy analysis, scoring or number crunching, or if your secret sauce has a lot of nuances and permutations, your application may be more complex than most. Complexity warrants special attention when it comes to documenting, coding and testing to make sure the finished application performs as you want it to.
Creative design is fun! This is where you get to select your fonts, color palettes, and images as well as have custom illustrations and animations made to give your application some sizzle.
Like when you decorate a house or buy a new wardrobe, there are nice options, there are extravagant options, and there is a range in between.
We typically recommend a budget of about $8,000 – 16,000 to cover creating the design and going through a few iterations of feedback and re-design. If you need more design time or have a lot of custom artwork that needs to be created, then the cost of the project will go up.
Integration With Other Systems
Integrating with external software introduces a lot of unknown variables. The trouble is, as a software developer, you don’t know how well the other system let’s information in or out, and what hoops you have to jump through in the process until you are writing the code.
Sometimes the integrations are effortless and sometimes they are extremely difficult. Typical integrations like payment providers such as PayPal or Authorize.Net are extremely easy to integrate with. The same goes for credit check services from Equifax or Experian.
But older, or lesser known systems may pose a challenge and increase the project cost.
Migration of Existing Data
If you have data in an existing system that needs to go into your new application, assuming it is more than you can feasibly type in by hand, then you will need migration. Migration is nothing more than custom scripts that take data out of your old system, dust it off and reshape it so it can fit into your new system.
The steps of the process are fairly straight-forward, but there are a lot of questions and decisions that need to be made as the two systems will store the data differently and will also use different kinds of data.
Once the new system is up and running, test runs of migration data are performed a few times after the software is finished to make sure everything is translated correctly, and the new system is using the data as desired. The effort of figuring out the translation rules, writing the scripts, and performing a series of tests and adjustments, will add time and cost to the project.
Designing to Budget
Similar to building a house, software can be designed to fit a certain budget. You may want a butler’s pantry and a finished basement but if it doesn’t fit your numbers, these may be lower priority items that you decide to not include in the project.
The same goes for building software. A good software development team can take your ideas, and create a design with a target budget in mind. Once the initial design and cost estimate are complete, certain features can be added or removed to hit your target number. This is why it is worthwhile to set a budget when you start a project.
But how do you know if your budget is reasonable? Well, we all know that you can’t build much of a house for $10,000. Similarly, you can’t build much software for $10,000. If your budget falls somewhere between the $40,000 – $250,000 range with allowances given to the factors that typically increase cost, chances are it can be designed to your budget.
The Checklist For Sharing Your Software Vision
Before you get started in developing your software app, your thoughts and ideas should be clarified and written down so they can be consistently and easily shared and understood. To help you get started on the right foot, we have created a checklist.
You can grab a copy of that checklist below and share it with your team!