Your business is doing very well. But no one is happy with the current business application that drives key areas of your business. It’s a legacy system that is complex, old, and people have built workarounds to do their jobs efficiently.
You have options to consider. Replace this outdated software with an off-the-shelf product, or update the existing custom legacy application.
Replacing with an off-the-shelf product can feel overwhelming. Where to start? Just Googling similar products and sifting through the sales noise is a confusing experience. The price for the software is not clear. And buying an off-the-shelf product means giving up control over the unique processes that make your business special.
Updating the existing custom application is also a scary proposition. If no one has updated the legacy code in the past couple of years, the risk of it breaking could be high. And if the programming language used to write it is old, there may not be many people available who know how to perform a legacy system update.
If only you could keep your custom software. If only you could hold onto what makes it valuable and keeps your business unique while also gaining the flexibility to adapt quickly and go after new opportunities.
How do you do that? By modernizing your existing custom software application with your business goals in mind.
Modernization Process: Start Small
Start by reaching out to experienced software development consultancies. Get their expert advice on how to approach your custom software. Ask them about their process for learning your business and their approach to software modernization. And understand what past successes they’ve had tackling similar problems.
After you found a good partner, engage them in a small project before undertaking the big project to update your business application. The small project allows you to run a “test” and learn if they can do the job. It will provide you with real data both about how they approach your problems and how well they can work with your organization. Starting with a small project is an excellent way to reduce the risk for both parties and help save on early business costs. This is especially important since this will be an ongoing relationship.
Avoid doing a lengthy and large request for proposals (RFP) process to evaluate potential vendors. These efforts rarely give you real data on how they will actually perform for you. The small project is the best tool for making an informed decision about your software partner before you start a full custom software modernization effort.
The Legacy Technology Assessment
One small project to run is a technology assessment or code audit. This is a great way to audit the technology you have and learn about its current state relative to what is happening in the market.
The following key areas should be explored:
- Complexity and difficulty of development environment setup process
- Automated deployment and hosting environments
- High-level application architecture components and their interactions: systemic weaknesses, potential weak points
- Source code quality and code structure as it relates to common best practices
- Automated testing including the existence of tests and coverage
- Security requirements and risks
- Data storage design
These engagements can range from one to four weeks and should be led by an experienced software developer. Larger technology assessments could involve a pair of developers. With a pair of developers, they could implement minimal code changes for a feature add to resolve an issue. Doing this work will help assess the difficulty of implementing any code refactoring and help your team understand the modernization strategies available to you.
The Design Approach to Application Modernization
Another approach is to invest in a Research, Design, and Planning (RDP) project. RDP efforts are great a getting a holistic picture of the legacy software application. This high-level approach should focus on:
- Understanding the needs of different groups of users and what needs are not being met
- Learning how the current software works inside the business and the workaround for it
- Highlighting where the key components and integrations exist with other systems
- Identifying the inventory of new features that have been accumulating over time
This approach invests more time in scoping high-value areas of the application while holding onto a high-level understanding of all other areas of the application. This work varies in length from two to eight weeks. It often involves a combination of software developers, designers, and product experts.
Atomic has written many blog posts about Research, Design, and Planning engagements which you can find here.
In the end, you should understand the work needed to modernize your current application. This includes knowing what the next bite of work will be to deliver value as well as having a high-level road map for the project. And a good partner will work with you to shape the future development team using the budget you have available to spend on the modernization project.
Modernizing Your Custom Software Application
At the end of either the technology assessment or RDP engagement, you should now have a much better understanding of the effort needed to modernize your custom software application. You’ve learned how your software partner works. You have a better understanding of the risks involved. And, you are in a better position to determine if you want to use an off-the-shelf solution or update your custom software.
This is a good time to assess the budget aspects of this work and to ask yourself some important questions:
- How much can you invest quarter after quarter into the work to modernize or rewrite your customer software?
- How much money will you lose over that same period if your current software breaks and you can’t fulfill orders?
- Will you lose valuable customer information, and what is that worth to you? What core business operations might be impacted?
- What future business opportunities will you miss because you can’t update your current software? How much business agility do you want in the future?
The longer you take to start modernizing your possibly outdated software application, the more risk accumulates to your business and the more negative business impacts you'll see. The best thing that comes out of the small project approach is that you are taking immediate action. Expect that there will be challenges in future work. Your and your software partner are going to be solving hard problems. And this will involve trade-off decisions, as there is never enough money to solve every problem.
Nothing important is without some risk. So find a good custom software modernization partner to walk with you down the road ahead. Get the momentum going with early wins, and take control of your future.