Skip to content
Back to work
Case 06 06
Enterprise software Reverse engineering, ownership transfer & ongoing maintenance

Industrial enterprise: ownership transfer of a production legacy system

Anonymised Industrial enterprise

A production line-of-business application had lost its previous maintainer. Old framework versions, no docs, no clear deployment story, and bugs blocking processes the operations team relied on. The client needed a partner who would take ownership, not just write a report.

The brief

A business-critical line-of-business application had lost its previous vendor. The codebase ran on old framework versions, the deployment was poorly understood, there were no docs worth the name, and several bugs were blocking the operations team from running the processes the tool was meant to support. The client needed a partner who would take real ownership rather than write a report and leave.

What we shipped

  • Full reverse engineering: read the codebase top-to-bottom across the backend and the frontend. Mapped components, dependencies, the database schema, the reporting layer, and the integration points.
  • Environments & deployment: reconstructed the staging and production deployment story so we could ship releases on our own.
  • Documentation: produced a formal handover document and a set of discovery scripts, covering architecture, environment setup, deployment, the data model, and the landmines we hit while learning the system.
  • Critical bug fixes: shipped the fixes for the bugs that were blocking real internal processes.
  • Ownership transfer: cut over from the previous vendor cleanly. Removed their references, took over operational accounts, bumped the production version, and now ship releases ourselves.
  • Ongoing maintenance: continue to operate the system in production for the client.

Outcome

A production system that had been left behind is now maintained, deployable, and shipping under our ownership. The operations team has their tool back, the client has a partner that actually runs the system rather than one that writes about it.