Onboarding a legacy application
Onboarding a legacy application
There are plenty of reasons why we might encounter legacy applications here at Createk. A legacy app is anything that comes to us already written. It usually has an ageing infrastructure that needs routine maintenance and development. We broke down legacy apps in more depth here if you’re unsure.
It is estimated that legacy applications consume anywhere from 60 to 80% of corporate IT budgets, making it clear why some businesses would rather outsource the maintenance to other companies; it can easily distract from daily operations or further digital innovation. When we take over management, our role might include adding new features, offering support in case there are any issues with the servers, or patching any security issues, amongst other things.
Today, we thought we would go through our thorough onboarding process for legacy apps. We hope it adds some value to your own legacy app maintenance and support. Who knows, we might have some steps your team have never considered before.
Stage one of onboarding a legacy app involves a thorough review of the software. This usually means an architect or senior software engineer will review the code from a quality and maintainability perspective. Using tools to examine the code – as there’s only so much humans can do – we look for any common issues with code quality to identify any security issues. We also look to recognise code metrics – how complicated the code is or how difficult it might be to change.
What looked like a good application on the surface-level could actually have more complicated issues underneath. So it is important we take the time to carry out an in-depth review to manage expectations both from our end and the clients. Before agreeing to a project or getting started, we want to know exactly what we are working with and set out a realistic plan to improve the app’s quality gradually.
We use a tool called Code Climate to help us visualise the apps we work with. The tool generates an A to F rating on a piece of code and estimates the amount of effort needed to push it up a grade. It provides a good baseline to help in our onboarding and planning process.
Technical debt develops when shortcuts are taken during initial development. While these shortcuts benefit a project in the short-term – getting an app up and running quicker – in the long-term, the debt still needs to be paid off. And, like financial debt, if you aren’t regularly reducing what you owe, it will only cost more in the long run. Because of this, we look to estimate the technical debt of any legacy application we bring on board. Then we work closely with our clients to see how they’d like to manage their debt over time.
After reviewing a legacy app, we begin the actual onboarding process, which involves gaining access to the code and setting up a testing infrastructure. We establish a continuous integration (CI) environment to enable automated testing that ensures maximum efficiency, reliability, and security.
A CI pipeline allows us to automate our entire software delivery process by merging all code changes in one central repository. Doing this minimises the chance of errors, provides standardised development feedback loops, and enables quicker product development and delivery.
Our goal is to automate as early as possible, saving the client and ourselves both time and money. We also prioritise automated deployment. This allows all application changes or added features to go live automatically through a standard process that is easy for the team to visualise and follow.
Docker for developers
All applications we bring on board are also configured to run with Docker – we spoke about our use of Docker in greater detail here.
Docker’s containerisation frees up our engineers to work on any of our projects at any given time. And it allows us to move from project to project seamlessly. It packages up software as separate entities, enabling us to run them on any Docker-compatible machine. All this without needing to tweak environment-specific settings or installing software for application-specific dependencies.
Ultimately, like using a CI pipeline, Docker helps us approach our projects more efficiently and in a more standardised way. In the long run, it saves us and our clients time without sacrificing the quality of work produced.
Throughout our work with legacy apps, we believe sample data is one of the most valuable pieces of the puzzle. It is simply a copy of an application’s data. Usually, it is created either by a member of the team or a piece of software.
By being able to reimport data quickly in the case of errors or when just wanting to start afresh, sample data allows us to move quicker and more efficiently. From a developer’s point of view, it also enables easy repeatability and saves time in this sense.
If there is a particular scenario in a test environment that needs testing, sample data can easily be sent to us to test separately to the actual application. And finally, having sample data to work with means we can make better, more informed decisions regarding the application. It is representative of the real thing without carrying any risk of affecting the core application itself.
Defect tracking allows us to monitor errors throughout production. While users might experience system breaks or bugs and tell you, they just as easily might not. And if a user has bugs but isn’t telling you, you are in the dark and can’t rectify the problem.
We introduce defect tracking tools to our legacy applications – such as Airbrake – to ensure we are notified whenever there is an error. It enables us to get the information we need to track and fix it without relying on the users. By squashing any issues as quickly as possible, we ensure a more seamless experience for the users. At the same time, we are reducing the chance of large-scale damage or security breaches.
To summarise: taking on a legacy application requires different priorities and processes to starting applications from scratch. At Createk, we try to be as thorough as possible when starting our work with a new legacy app. This way, we can ensure maximum efficiency, success, manage expectations, and reduce costs and risk wherever possible.
At Createk, we are experts in development and web applications. If you are looking for support on your legacy app, want something built from scratch, or simply want our guidance on moving forward with a project, get in touch on 0330 995 0685.