AI-Based Legacy Software Modernization

· 4 min read

Table of contents
The VTI Challenge team and senior leadership at dinner in Bonn

I’m a product owner with deep expertise in product management and marketing and a solid technical background. However, I’ve never worked as a software developer. In 2017, I completed a course called “Python as a First Programming Language.” After the course, I was able to write a simple script or a small program, but that’s fundamentally different from the level of expertise of my team’s developers.

As a participant in Deutsche Telekom’s VTI Challenge, I joined a project to modernize legacy software using AI. We worked on a 10-plus-year-old legacy system written by third-party developers in C#. In early 2025, we successfully used Windsurf and Anthropic Claude 3.5 Sonnet for the pilot.

It was an interesting and educational experience working with AI agents — one that has a lot in common with product management:

  • Context matters. An AI agent must be able to scan and read code; a detailed prompt — an action guide — is crucial.
  • Decomposition matters. Large, complex tasks are executed poorly if they aren’t broken down into small, clear subtasks. Agents handle small, well-described tasks far better than big, abstract ones.
  • Documentation matters. Before rewriting a large, complex piece of logic, you need to prepare using AI sequence, activity, and use-case diagrams in PlantUML (useful both for human validation and for AI agent context).
  • Tests matter. If the old business logic works well, AI agents can effectively create unit and integration tests, allowing you to increase test coverage. This is critical for validating new code.
  • Versioning matters. Creating a branch and committing after each change (if tests pass) is standard for developers, but it’s a critical discipline when non-developers use AI agents.
  • Know when to climb out of the rabbit hole. After implementing new logic, failing unit tests can send an AI agent into an endless loop (deleting tests, radically changing business logic). In such cases it helps to roll back and start a fresh session.
  • A clear action plan matters. Instead of “here’s the old code, please rewrite everything to a microservices architecture,” it’s better to say: “Perform an in-depth analysis of the codebase. Our goal is to rewrite the project to a microservices architecture using Java/Spring Boot and React. Act as a senior enterprise architect and prepare a detailed modernization plan in modernization-plan.md (Markdown). Do not modify the existing code; anticipate potential pitfalls and prepare a validation plan for the new solution by increasing test coverage.”

During the pilot we managed to prepare detailed technical documentation and diagrams, rewrite a significant portion of the code onto a modern stack, and increase test coverage. As a result, we took first place and, as a reward, were invited to dinner in Bonn with senior leadership Kanwardeep Singh Ahluwalia (K.D), Christian Sledz, Christiane Starbatty, Jeremias Reith.

Using AI in a product owner’s work has long since gone beyond “tidy up my language in an email.” Thanks to Claude Code and modern LLMs, it’s now possible to:

  • Prototype rapidly. Build a full UI prototype with Lovable and Figma — letting users and stakeholders see a working product demo before developers start coding.
  • Implement simple user stories. For routine, repetitive stories, launch Claude Code, look up similar implementations in the codebase, validate via unit tests, and request a developer code review.
  • Write technical user story descriptions. Claude Code can prepare solid technical descriptions from business requirements by scanning the codebase.
  • Automate with quick scripts. Many routine tasks can now be automated by writing simple scripts or Excel formulas with the help of AI agents.
  • Answer questions about the current implementation. To understand how a feature is implemented, you don’t always need to pull developers away — ask an AI agent, then validate the answer with a developer.
  • Validate implementations. The actual implementation often differs in details from how the business task is described in the user story. An AI agent can analyze merge requests and describe in detail how the functionality was implemented, helping you communicate effectively with developers and write more realistic release notes.

I’m very grateful to the challenge team Thore Dankworth, Florian Feigel, Jannis Krümpeler, Amit Kumar Mondal, Masoud Sadeghi, Evgenia Dorofeeva and organizers Sergei Holmeckis, Sigrid Braun, Antigoni Athanassiou, Peter Biersack for the opportunity to try modern AI tools for developers, to experience a flow state while working with code, and to gain important insights into how the product owner/manager role is evolving into an AI-augmented product owner/manager.

Originally published on LinkedIn.