CTT Case Study — Link Consulting


Case Study · CTT × Link Consulting

How CTT modernised a decades-old application with no documentation — without simply migrating the past

CTT chose one of the hardest applications in its legacy estate to test a different approach to modernization.

Using AMA — Application Modernization Approach — Link reconstructed the application requirements from real usage, helped CTT decide what was still worth keeping, and generated a new application for CTT’s own target architecture and engineering framework.

28

macro requirements recovered

21

retained

7

deliberately removed

1

application rebuilt for CTT’s modern technology stack

Case Studies · Interviews

The story, from the people behind the project

How do you modernise an application when the documentation is gone, the original developers have left and the architecture belongs to another generation?

Photo

Felipe Rodrigues

CTO, CTT — Enterprise Architecture and Software Engineering

In this conversation

20:03

00:45
Why CTT’s application modernization challenge goes beyond technology
03:00
How CTT’s legacy application requirements were recovered
10:52
How AI agents turn requirements into design, code and tests
19:15
Why CTT’s modernization approach could make this the last migration

During the conversation

The three participants
Felipe Rodrigues, José Alves Marques and Pedro Sousa
The recording setup
The recording setup, before the session
The interview in progress
Felipe Rodrigues during the interview

The case

The problem was not just old technology. It was lost knowledge.

CTT has applications that have supported critical business processes for decades. Some were built on technologies that are now obsolete. Documentation is incomplete or no longer exists. The people who originally developed them have moved on. And many business rules live inside screens, workflows and code rather than in a reliable specification.

This proof of concept focused on exactly that type of application. Instead of asking “how do we convert this code?”, CTT and Link started with a more important question.

What should this application actually do today?

That distinction changed the entire modernization process.

About the client

CTT — Correios de Portugal

500+

years of history — and of application landscape built across it

With more than five centuries of history, CTT operates Portugal’s universal postal service alongside parcel and express logistics, retail, financial and digital services.

That history also means a complex application landscape built across multiple generations of technology. For CTT, modernization is therefore not simply about replacing old technology — it is about deciding what should remain, what should disappear and what the future application landscape should look like.

Image courtesy of CTT

The outcome

What the proof of concept demonstrated

01

Requirements recovered from reality

Real application usage became the starting point for structured requirements, with source-code analysis used to complete and enrich them. The behaviour of the application no longer depends on undocumented knowledge.

02

Generated for CTT’s own technology stack

The new application was built around CTT’s target front-end and back-end technologies, REST APIs and software engineering framework.

The target architecture defined the new application — not the legacy one.

03

Integrated into CTT’s engineering environment

The application was containerised and deployed through CTT’s existing automated pipeline into the quality environment, entering the normal engineering process rather than a separate modernization one.

04

A model CTT can evaluate at portfolio scale

The proof of concept gave CTT a tested approach for a wider question: how to modernise, retire or consolidate applications across the estate.

In their words

A code-to-code migration reproduces what exists. A requirements-first approach creates the opportunity to decide what should exist next.

Photo

Felipe Rodrigues

CTO, CTT — Enterprise Architecture and Software Engineering

How AMA works

Start from the future — or recover it from the past.

For a new application, the process starts with what the business wants to create. For a legacy application, it starts with evidence of what exists today: real usage, processes, documentation and source code. Both paths converge at the same point — a validated set of requirements. From there, architecture, code and tests can be generated and validated through the same engineering cycle.

AMA — stages, from requirements discovery or recovery through generation, testing and requirement-based maintenance

The full story

Want the complete CTT case study?

Explore the project in more detail — from the legacy challenge and requirements discovery to architecture decisions, validation and what CTT learned from the proof of concept.

Format

PDF

Pages

4

Language

EN

PDF cover (A4)

Fill in the form and the one-pager opens straight away.

    Thank you. Your one-pager is ready. Download it here ↗

    Ready to start?

    Still running an application nobody wants to change?

    When an application is critical, poorly documented and too risky to touch, modernization should not start with code conversion. It should start by understanding what the application actually does, what the business still needs and what should exist next. That is where AMA starts.

    Talk to our Application Modernization team about a first assessment.