Ultimate Guide to Modernizing a FileMaker Legacy Application

Why should I modernize my apps?

What is a legacy app?

There are a few factors that, when combined, constitute a legacy app. Apps carrying technical debt and using outdated technologies that are critical for day-to-day operations are what we call legacy apps. They cause pain for their users constantly and, for that reason, are the target of app modernization initiatives. This article aims to help you determine how you can identify and replace/improve your legacy apps.

What is technical debt?

You’ve probably heard this buzzword thrown around for years, especially from people trying to sell you their services to help you “get rid of your technical debt.” But what exactly is technical debt, and how does it relate to legacy apps?

Technical debt is a metaphor describing what happens when app developers expedite the delivery of a feature or project at the expense of quality. In other words, when your development team tries to deliver something “quick and dirty,” it creates technical debt. Apps with technical debt then become obsolete or difficult to use.

Ward Cunningham, who coined this phrase/metaphor, explained technical debt as follows:

“With borrowed money, you can do something sooner than you might otherwise, but then until you pay back that money you’ll be paying interest. I thought borrowing money was a good idea, I thought that rushing software out the door to get some experience with it was a good idea, but that of course, you would eventually go back and as you learned things about that software you would repay that loan by refactoring the program to reflect your experience as you acquired it.”

The three pillars of applications

Nowadays, everything is code. To better understand the consequences of technical debt and potential solutions, I’d like to introduce the three pillars of applications: platform infrastructure, internal architecture, and features. In the rest of the article, we will use colors indicate which pillar the problem/solution is related to.

Infrastructure

Infrastructure is the physical body of your application.

For a FileMaker application, the most notable components of its infrastructure are the:

  • Server hardware (whether on-premise or in the cloud)
  • Operating system
  • Claris/FileMaker platform (Claris/FileMaker Server, Claris/FileMaker Pro, and other software that is part of the platform)

Good infrastructure continuously provides a safe environment with enough resources for applications to run efficiently.

Architecture

Architecture is the collection of all application design decisions, whether they govern low-level details or high-level decisions. All design decisions form a continuous fabric that defines the app’s shape; this is the architecture.

As mentioned above, architecture covers many, many decisions in various aspects. It’s hard to pick just a few significant components. But if we have to, for a FileMaker application, here are some aspects we pay special attention to when trying to improve architecture:

  • Data schema
  • Naming conventions and consistency
  • Abstraction decisions (modularity, ease of reuse, level of redundancies)
  • Code readability

Good architecture keeps maintenance and development costs reasonable and enables the app to evolve continuously. In other words, good architecture keeps the software soft (easy to change).

Features

Features represent what an application can do for its users. Features describe how an app intends to generate value for a business.

A good feature set should be able to deliver what the business/users currently need.

Do I Have a Legacy Application?

We keep hearing from our clients that “if it’s not broken, don’t fix it.” However, often there are signs that your apps might be broken in ways you do not yet recognize.

All three pillars (infrastructure, architecture, features) can influence an app’s longevity. With any of the pillars falling short, your app becomes outdated and can no longer fulfill its responsibilities properly.

Here are some signs that this is happening to your application(s). The list is categorized based on the three pillars.

Infrastructure Issues

  • Losing support from your IT providers/vendorsYou are having an issue with FileMaker. After calling Claris, you learn that your version of FileMaker is not supported anymore, and they can’t help you.
  • Inability to update software/hardware – Your current devices running FileMaker start to reach the end of their lives. When it’s time to purchase new devices, you realize the version of FileMaker you are currently using can’t be installed on the new devices/OS.
  • Personnel – Your computer guy is retiring. The new person coming in sees your devices/OS and looks confused.
  • Lack of disaster recovery capability – If a fire burns down your server room, all your data will be gone, with no way to restore it.
  • Security concerns – The thought of your apps getting hacked scares you because you don’t even know whether your app has a lock on it and who might be able to open it.

Architecture Issues

  • Performance issues – Your app is slow.
  • Scalability issues – Your app can barely scale (by location, user count, or data volume).
  • Stability/robustness issues – Your app is buggy.
  • High maintenance and development costs – Changing your app costs way more than it used to.
  • Low delivery velocity – New features take forever to make it to production.

Feature issues

  • Cannot keep up with the latest needs – Your app doesn’t keep up with the ever-changing demand of your business.
  • Losing confidence from users – You keep hearing people recommending new off-the-shelf apps, and the flavor changes every other week.

What are my options for modernizing my legacy FileMaker app(s)?

Perhaps some of the scenarios listed above are happening to you right now. But man, rebuilding an app sounds like it will tear a hole in the company’s already tight budget1.

The good news is that rebuilding is one of, but not the only, option for you. Let me list your options first, then discuss how to make a choice in the next section.

Upgrading Claris/FileMaker (Infrastructure)

Upgrading to the latest version of Claris FileMaker is mostly an infrastructure approach.

Doing so allows your app to benefit from the latest security features, bug fixes, stability and performance improvements, and support from Claris.

It also enables developers to leverage new features from the latest FileMaker to improve the application’s architecture or build new features.

What issues does this approach help address?

  • Security concerns
  • Losing support from your IT providers/vendors
  • Inability to update software/hardware

Rehosting to the Cloud (Infrastructure)

This entails moving the complete application to a new home to benefit from new hardware and/or cloud technology.

What issues does this approach help address?

  • Lack of disaster recovery capability
  • Security concerns

Refactoring/Re-Architecting (Architecture)

This involves restructuring existing code to remove technical debt and improve the application. The app will look and behave mostly the same.

What issues does this approach help address?

  • High maintenance and development costs (Do note the refactoring project has its own cost)
  • Low delivery velocity
  • Performance issues
  • Scalability issues
  • Stability/robustness issues

Rebuilding (Infrastructure, Architecture)

This entails rebuilding and rewriting from scratch, but keeps the original scope and project specifications. The rebuilt app will have new UIs, backend logic and integrations that help deliver the same features as the original app.

Without a doubt, this approach should be combined with upgrading your Claris/FileMaker platform to the latest version to leverage the latest development tools available.

What issues does this approach help address?

  • High maintenance and development costs (Note that the refactoring project has its own cost)
  • Low delivery velocity
  • Performance issues
  • Scalability issues
  • Stability/robustness issues
  • Security concerns
  • Losing support from your IT providers/vendors
  • Inability to update software/hardware

Encapsulation (Features)

Encapsulation means leaving the application in place, adding services and an API layer, building a new UI, and connecting to the legacy application’s database.

This approach does not change the original app much, but it allows for extending the original app’s functionality on a relatively clean slate.

What issues does this approach help address?

  • Cannot keep up with the latest needs
  • Losing confidence from users

Replacement (Infrastructure, Architecture, Features)

Rebuild and re-envision new applications based on new requirements. The replacement can be done using the latest version of the Claris/FileMaker platform or other technologies that suit your needs, like a custom web app using Laravel, or using another low-code platform like OutSystems or Toca.

What issues does this approach help address?

  • Losing support from your IT providers/vendors
  • Inability to update software/hardware
  • Lack of disaster recovery capability
  • Security concerns
  • Performance issues
  • Scalability issues
  • Stability/robustness issues
  • High maintenance and development costs
  • Low delivery velocity
  • Cannot keep up with the latest needs
  • Losing confidence from users

What option(s) should I choose?

Now that you understand all of the options available for modernizing a legacy application and the implications of those decisions, let’s look at how to choose the best fit for your organization.

First, get current (upgrade your Claris/FileMaker platform)

Suppose you are using an unsupported version of the Claris/FileMaker platform2. In that case, you should upgrade Claris/FileMaker to a supported version, preferably the latest release or one release behind, depending on the current release’s stability.

I can write an entire article talking about why you should upgrade, but I won’t do it here. Know that it’s almost meaningless to discuss other options (aside from replacement if you decide to leave the Claris/FileMaker platform) without getting current first. It is the bare minimum requirement if you are serious about modernizing your app.

If the budget is tight, at least consider this option.

Consider Rehosting to the Cloud

Sometimes, you’d need to upgrade your hardware to install the latest version of the Claris/FileMaker platform. If this is the case, consider rehosting to the cloud. Hosting in the cloud completely frees you from managing your hardware, with the added benefit of convenient backup options and easy-to-implement disaster recovery solutions. The cost of cloud computing is dropping every year.

Determine if your app’s feature set still delivers

I don’t know why, but every time I say, “Software is supposed to be soft,” people laugh. But it is. Software is created to cater to users’ needs, which might (and tend to) evolve.

Most legacy apps have some years on them. So you need to figure out if your app still delivers the value it’s meant to. Does your app still meet users’ needs?

Before answering your own question, interview, observe, or send out surveys to your users to see what they say and gather feedback.

Current Features are Sufficient

Congratulations, you have a timeless design if your app still delivers features its users/the business needs. This also means the issues that drive you to modernize your app do not lie with its features, but rather in the infrastructure and architecture. In this case, refactoring or rebuilding your app will be your best option.

Refactoring tends to be more appropriate between the two if your app is small and not very complex (as an extremely simplified rule of thumb, let’s say small means your app has less than ten tables). Otherwise, rebuilding might be cheaper, considering it doesn’t require developers to learn previous developers’ habits + intentions (wearing other people’s shoes is always hard).

Current Features are Insufficient

If your app’s feature set no longer delivers, then encapsulation or replacement are your best options.

Between the two, consider encapsulation if your existing app can still competently deliver what it used to deliver (meaning no stability, performance, or scalability issues), but adding new features to its code base is too hard. Otherwise, a replacement is the best solution if your app is brokenbroken (it ticks off the majority of issues in our checklist).

Decision tree

Still not sure what to do?

If you want a modernization solution tailored to your needs, please get in touch with us. We have business analysts and technical experts who can help you identify your pain points and needs, strategize and formulate solutions, and implement and deliver those solutions.

Note:

  1. For future readers, to provide some context, as of the writing of this article (2023 April), the world is in the aftermath of COVID; wars are still actively ongoing; the economy is pretty bad all around the globe; and people are getting laid off left and right, and budget is tight, everywhere, all the time.
  2. Check out ClarisPKB to find out whether your version is still supported