When a Legacy System Reaches Its Limits: Rebuilding a FoxPro-Based Inventory Platform

For many businesses, legacy systems are not just software – they are the backbone of daily operations.

But what happens when those systems stop working, and no one is left who understands how they were built?

Recently, we worked with a client in the architectural antiques and restoration industry facing exactly this situation.

A System That Worked for Decades

The client had been using a FoxPro for DOS–based inventory and sales system for many years.

Despite its age, the system supported critical business processes, including:

  • inventory management
  • sales and invoicing
  • customer tracking

When the system stopped working on newer versions of Windows, the client implemented a temporary workaround by running it inside a Windows XP virtual machine.

This allowed the business to continue operating, but it was not a sustainable solution.

When Things Start to Break

Over time, new issues began to appear.

One of the most critical problems was related to the invoice numbering system. The original design used a fixed 5-digit field, which eventually led to overflow errors as the number of invoices increased.

At the same time, the original developer of the system had passed away, leaving no documentation or support.

Attempted Modernization

The client attempted to modernize the system by upgrading it to Visual FoxPro.

Over several years, they worked with multiple developers and companies. While some progress was made, the result was only partially successful:

  • important functionality was missing
  • tax calculations were incorrect
  • the system could not fully replace the original DOS application

As a result, the client was forced to operate two systems in parallel, which increased complexity and risk.

Understanding the Real Problem

When we joined the project, the first step was a full analysis of the existing systems and data.

The system relied on DBF-based databases that had evolved over time without proper structure. We identified several issues:

  • duplicated and inconsistent data fields
  • missing relationships between entities
  • incomplete or unreliable customer records

In particular, the customer data had become fragmented, with multiple records representing the same clients.

A Practical Approach to Recovery

Instead of trying to patch the existing system further, we proposed a different approach.

We designed a new, properly structured and normalized database, built to support the business workflows reliably.

All existing data – including sales, invoices, and historical records – was carefully migrated into the new structure.

Because of the poor quality of the existing customer data, the client made a strategic decision:

  • start with a clean customer database
  • provide access to the legacy data for reference
  • allow new customer records to be created organically during daily operations

This ensured data quality moving forward while preserving access to historical information.

Delivering a Working System

In less than two months, we delivered a new system built with Visual FoxPro 9, including:

  • a clean and normalized database structure
  • migrated historical data
  • corrected business logic, including tax calculations
  • a stable environment running directly on the client’s server

The result was a single, reliable system that replaced both the old DOS application and the incomplete upgrade attempt.

Looking Ahead: Moving Beyond FoxPro

While the new system significantly improved stability and data quality, it also serves as a transition step.

The next phase for the client is to move toward a modern web-based platform, potentially built with technologies such as React or Next.js and backed by a more robust database system.

This would provide:

  • improved accessibility
  • better integration capabilities
  • long-term sustainability

Lessons from Legacy Systems

This project highlights a common pattern:

  • legacy systems often work for decades
  • over time, they become harder to maintain
  • partial upgrades can introduce new problems
  • data quality becomes a major challenge

The key is not just replacing the technology, but understanding and preserving the business logic that has evolved over the years.

If your organization relies on a legacy system that is becoming difficult to maintain or extend, feel free to contact us to discuss possible modernization approaches.

Leave a Reply

Your email address will not be published. Required fields are marked *