Enhancements

Your business may have developed a need for functionality not present in your original legacy system. It is usually preferable to code enhancements using up-to-date languages and methods. However your fresh development may still need substantial integration with existing processes, which can present a difficult problem if your code is written in a traditional style, or not well understood.

Our expertise in legacy systems will help you create and integrate the new functionality you need in the minimum time. Where possible we will create new code using present-day libraries and modern techniques – but we will also ensure new features fit old ones seamlessly to leave users believing the new features were always there.

Extending the original functionality

This category may encompass improvements at the front-end, such as polishing the UX/UI of existing web-pages, adding buttons or supplementary information; many purely back-end processes, such as enhancements to houskeeping, deployment, release management or other admin tools; or the addition of features which require both front and back-end adjustments.

There are two main approaches that can be taken when expanding legacy code functionality – and which one is more appropriate for your case depends on the specifics of your setup and requirements.

  1. attempt to create the new features in the existing language and style
  2. create the new features as separate functions which interface with the old code

The first option may make more sense if one or more of the following is true:

  • your company has a reasonable understanding of the current code format
  • the changes to be made are small compared to the legacy codebase
  • using a more modern language/technique would still require adapting the original code to facilitate the interface

However, if your legacy platform is more like a black box – it fulfills the purpose it was designed for adequately, but how it operates under the hood is not well understood – then it is generally better to leave that code alone and introduce new features as a separate library which your company can more readily maintain.

We can help you decide which option is more suitable for your situation – and get your new features up and running in either case.

Improving User Experience and Process Flow

A common mistake among online businesses is to underestimate the importance of providing a professional user experience. Something as simple as a smooth login process can make the difference between a customer staying on your site, or abandoning it for a competitor. Internet users grow ever more spoiled with one-click, seamless interactions, and become increasingly impatient with anything else as a result. Does your password input accept special characters? Are you feeding back password strength and other information with each keypress as the user types in the web form? Is your confirmation email going out with the right headers, so it’s not ending up in “spam”?

These are just a few of the hundreds of ways your sign up flow could be causing you to lose out to the competition. And if your site has not had an update for several years it’s likely you will be answering “no” to some questions like this.

Of course it doesn’t stop at signup. We mention signup and login specifically because they are the most common website process flows – but what happens next is just as important. What about payment? If you are accepting sales online but customers are abandoning purchases before completing checkout, this could be a sign that your purchase process flow feels uncomfortable or confusing to your site’s visitors.

In the case of payment the benefits of improving user experience are obvious and direct. But in fact any time users struggle with any action at all on your site, it causes annoyance and a loss of confidence in your services – which inevitably translates to a loss of revenue.

Legacy user interfaces often fall short of present day user expectations because they were coded when desktops had tiny screens, mobile technology didn’t exist, and gif images were needed to render rounded corners! In contrast, today’s interfaces are fast and responsive, reacting to keypress and updating quickly through modern techniques like ajax or websockets. User settings and workflow progress are autosaved for next-visit convenience, and a high level of interactiveness is provided with third party applications. Unfortunately, this has all become standard.

If your legacy website or application is lagging the status quo, we can bring it back up to date. We excel in turning older systems around to give them a fresh, modern look and feel – without the need of a costly rewrite. Get in touch with us for a free evaluation and cost estimate.

Creating completely new features

If your proposed upgrade will essentially be a new standalone service or utility, then the situation is usually simpler. You may want the new features to have the same look and feel as the original system, in which case some analysis of current system behaviour will be necessary. Beyond this, your new deployment can be created from the ground up using whichever tools you feel are most appropriate.

You can rest assured we will avoid getting you in the same situation you are facing with your older code – in these circumstances we will always deliver modern, modular, highly maintainable and upgradable code according to the DRY (“Don’t Repeat Yourself”) principle.

Case Study: Adding an API to a Payments Platform

Developer Evaluation

[This] is a payments service which enables [a private network of organisations] to access a variety of common payment gateways… Some members have expressed a wish to develop their own interface for a subset of functions in the legacy UI, and the client agrees an API should be the best way to achieve that… The main issue is that generally code corresponding to the UI is not separate from the backend function – methods tend to be linear step-by-step structures that are not subdivided well. This means creating an API cannot be a simple matter of adding a new interface to functions that are already present… Despite the substantial change that would be required to adapt the current code, it is suggested this option remains preferable to creating a separate API platform, which would mean maintaining 2 versions of each function…

Steps Taken

  • Created dev environment, cloned and set up site
  • Refactored methods
  • Developed API class library
  • Set up site with the requested CDN
  • Created API class library unit test framework
  • Ran tests and pushed changes

Time Breakdown

Statistics

  • Manpower:
    3 Developers + 1 Supervisor
  • Time to Completion:
    3 Weeks
  • Server Downtime:
    None
  • Total Developer Hours:
    86
  • Cost Per Hour:
    $45
  • Total Migration Cost:
    $3,870

Result

12 REST API
endpoints
created

Making old code mobile ready

One question we get asked frequently is, “can you turn my old code into a mobile app?” The answer is often yes! Legacy applications are usually heavy on server side processing – which means all that may be needed is the creation of a minimal mobile interface. Remember the difference between an “app” and a traditional program is mainly hype!

In practice, how readily you can go mobile may depend on how well your legacy code has respected the MVC (Model View Controller) paradigm. In other words the better separated the “view” (essentially the user interface) from the rest of the code, the easier the transition should be. For code that is tightly integrated – or messy under the hood – a move to mobile may still be possible, though will probably require more work. Get in touch find out how easy it would be to convert your own system – and we can give you a more specific evaluation.

An alternative to creating a native mobile app may be to simply make your existing web-application mobile ready. This can often be achieved by some simple modifications to the front-end code, and can be a quicker and more cost-effective solution. Bear in mind that many companies find maintaining both web and native app types too costly, and frequently prefer one over the other. It’s easy to think you need a native mobile app because everyone is talking about them, but that may not make the best business sense. Get in touch and we can help you weigh up the options for your individual situation.

Adding Analytics Tools

Perhaps you want to get more out of your current system, but don’t feel you have enough information on what changes would be beneficial. Whereas present day applications tend to be coded with an emphasis on feeding back usage statistics, older code was often put together with just the practical utility in mind. A smart step towards modernising your current setup may start with analysis – simply finding out what your users are doing.

Most of the work that goes into creating an analytics tool over an existing system is non-invasive – ie it does not affect the original processes. However, it is usually necessary to place “hooks” at various places in the legacy codebase to tap the information into the new tool. This is often simply a matter of careful code examination – and is an area we are well experienced in. However, the time and cost will depend on your specific situation, and what information you are seeking to obtain. Please get in touch to get a free initial evaluation and cost estimate.

Case Study: Conversion of Mobile Interface to Food Delivery Website

Developer Evaluation

[This is a] Spanish language website enabling regional restaurants to organise food delivery services… The original interface is well-used, but there are some long-standing user complaints about the UX/UI:

  • English language is selectable but Spanish still appears in menus. Translations do exist but the system uses incorrect templates.
  • the “search” facility appears to only return a small subset of actual matches
  • User “favourites” are remembered but link to the place in the menu rather than adding to cart
  • [various other specific interface problems]…

[The client] has requested (a) to fix these issues, and (b) develop a native android app to mirror the website functionality… Unfortunately front end logic is not well separated in the codebase, and so an initial phase of refactoring will be necessary…

Steps Taken

  • Put site under git version control + create local backup
  • set up dev environment
  • refactored in multiple areas to facilitate app API
  • fixed 6 specific UX/UI issues
  • developed API layer
  • developed lightweight test framework
  • ran tests and optimised API
  • developed native app user interface
  • created and executed native app tests

Time Breakdown

Statistics

  • Manpower:
    6 Developers + 2 Supervisors
  • Time to Completion:
    8 Weeks
  • Server Downtime:
    None
  • Total Developer Hours:
    682
  • Cost Per Hour:
    $45
  • Total Migration Cost:
    $30,690

Result

Improved Web App
and successfully
created Android App