Replay: Modernizing Legacy: COBOL to Cloud with GitHub Copilot

GitHubAbout 5 min readSep 7, 2025Watch original
THE SUMMARYAI-generated

Key Concepts:

  • AI-Powered Modernization: Using AI tools like GitHub Copilot and autonomous agents to modernize legacy code, specifically COBOL.
  • COBOL: A 65-year-old programming language still used in many financial and government systems.
  • GitHub Copilot: An AI-powered code completion and generation tool.
  • Autonomous Agents: AI agents that can independently perform tasks, such as code transformation.
  • Semantic Kernel SDK: A Microsoft SDK for orchestrating autonomous AI agents.
  • Code Preparation: Steps to make legacy code more understandable for AI, including reverse engineering, removing irrelevant information, and translating comments.
  • Code Enrichment: Adding comments and structure to code to improve understanding.
  • Automation Aids: Tools and techniques to assist in the modernization process, such as call chain analysis and test generation.
  • Call Chain Structure: The hierarchy of file calls within a COBOL program.
  • TDD (Test-Driven Development): An approach where tests are written before the code.
  • Utility Classes: Reusable code components for common tasks.
  • Multi-Agent Orchestration: Coordinating multiple AI agents to work together on a task.
  • Token Limits: The maximum amount of text that an AI model can process at once.
  • LLMs (Large Language Models): AI models trained on vast amounts of text data.

1. Introduction and Context

  • Andrea Griffiths from GitHub introduces Julia Cordic, a software global black belt at Microsoft, to discuss AI-powered modernization of COBOL systems.
  • COBOL is a 65-year-old language still processing a significant amount of financial transactions and other critical processes.
  • A major challenge is the scarcity of COBOL developers, as many are retiring or nearing retirement.
  • Julia will demonstrate how GitHub Copilot and autonomous agents can help with COBOL code transformation.

2. Julia Cordic's Background and Role

  • Julia is a software global black belt at Microsoft, specializing in software engineering, DevOps, and AI-assisted coding.
  • She helps large organizations accelerate developer workflows through platform engineering.
  • Julia has experience in software engineering, dev lead, and cloud solutions architecture.
  • She did not learn COBOL but has worked on projects involving its modernization.

3. The Problem with Legacy Code

  • Organizations often lack a clear understanding of what their legacy code is actually doing.
  • Reverse engineering is necessary to understand the code's functionality.
  • Legacy code may contain irrelevant information, such as outdated comments and logs.
  • Code may be written and commented in languages other than English, making it harder for AI models to process.

4. Three Steps to Legacy Code Modernization

  • Code Preparation:
    • Reverse engineering to understand the code's functionality.
    • Removing irrelevant information, such as outdated comments and logs.
    • Translating comments to English for better AI processing.
  • Code Enrichment:
    • Adding comments to code to improve understanding.
    • Identifying and leveraging deterministic structures in the code.
  • Documentation:
    • Documenting everything generated by Copilot in markdown files to serve as a source of truth.

5. Demonstration of GitHub Copilot Agent Mode

  • Julia demonstrates using GitHub Copilot agent mode to analyze COBOL code.
  • Copilot generates a markdown file with a file inventory, complexity analysis, and business purpose.
  • It also creates a mermaid diagram to visualize the code structure.
  • This analysis can be used as a starting point for generating Java code.

6. Automation Aids

  • Call Chain Analysis:
    • Generating a call chain hierarchy to understand which files call which other files.
    • Creating a mermaid file to visualize the call chain.
  • Test Generation:
    • Using a TDD approach to generate Java tests based on the extracted business logic.
  • Dependency Analysis:
    • Identifying utility classes and suggesting potential dependencies in Java or .NET.

7. Microsoft Semantic Kernel and Autonomous Agents

  • Julia and her colleague Gustaf created a repository using Microsoft Semantic Kernel for autonomous agent orchestration.
  • The framework allows prompting agents from any source to any target.
  • It requires an Azure Open AI endpoint or an AI endpoint of choice.
  • The framework was tested with GPT-4, GPT-4-turbo, and GPT-3.5-turbo models.

8. Doctor.sh Script

  • The doctor.sh script checks the configuration and dependencies of the project.
  • It verifies that the necessary variables are set and that the dependencies are installed.
  • The doctor.sh run command executes the code transformation process.

9. Agent Prompting and System Prompts

  • The agents are initialized with system prompts that define their roles and responsibilities.
  • The system prompts provide step-by-step instructions for the agents to follow.
  • The prompts can be customized to suit specific needs.

10. Sanitizing COBOL Code

  • The framework includes a function to sanitize COBOL code by removing irrelevant information.
  • This can also be done manually with GitHub Copilot.

11. Security and Data Privacy

  • When using a cloud-hosted LLM, data is sent to the model in the cloud.
  • For sensitive data, organizations can host their own LLMs on their own infrastructure.
  • Semantic Kernel is just an SDK and does not handle any data itself.

12. Cloud Platforms

  • Many financial institutions are working with Azure.
  • AWS also has an offering for mainframe modernization, but it is proprietary.
  • The choice of cloud platform depends on the organization's needs and preferences.

13. Modernization vs Code Extensions

  • There are modernization vs code extensions for Java and .NET.
  • These extensions are based on modernization rules that are already known.
  • The framework presented in the video is more flexible and can handle more complex scenarios.

14. Conclusion

  • AI-powered modernization of COBOL systems is a complex problem that requires a multi-faceted approach.
  • GitHub Copilot and autonomous agents can help automate the process, but human expertise is still essential.
  • The Microsoft Semantic Kernel SDK provides a powerful framework for orchestrating autonomous agents.
  • Organizations can contribute to the open-source project and customize it to suit their specific needs.
  • The key is to break down the problem into smaller chunks and tackle it iteratively.

15. Call to Action

  • Organizations interested in collaborating on the project can reach out to Julia and Gustaf on LinkedIn or open an issue in the GitHub repository.
  • The open-source repo can be found under aka.ms/ccobalt.
  • A blog article about the project can be found under aka.ms/cobaltmosblog.
  • Julia will be speaking at Porto Techub in October.

AI summaries can miss context or contain errors. Check important details against the original video.

Go a little deeper.

Have a question about this video? Load its transcript to open the video chat.