E148: Software Refactoring in the Age of AI

Topics covered
Popular Clips
Episode Highlights
Volume Growth
The exponential growth in the volume of source code presents significant challenges for software maintenance. highlights how the industrialization of software development, including the integration of open-source components, has led to companies managing vast amounts of code. He shares an example of a customer with over 500 million lines of code, illustrating the scale of the problem 1. This growth is further accelerated by generative AI, which produces new code at an unprecedented rate, complicating the maintenance process 2. Schneider notes, "It's accelerated that already existing trend of developing net new software even faster. And it's just sitting on the shelf."
It's accelerated that already existing trend of developing net new software even faster. And it's just sitting on the shelf.
---
Maintaining such a large volume of code is not optional, as outdated components can lead to significant operational issues.
  Â
Maintenance Issues
Neglecting software maintenance can lead to severe security and reliability issues. explains that outdated software components can become vulnerable to zero-day security threats, making it crucial to keep systems updated 1. He cites the example of AWS retiring Coretto 8, which forces users to upgrade to Java 17 to maintain functionality. This constant evolution of software environments necessitates regular updates to avoid massive undertakings when issues arise. Schneider emphasizes, "It's this ever-evolving substrate upon which we've built that makes it sooner or later required to move."
It's this ever-evolving substrate upon which we've built that makes it sooner or later required to move.
---
Without timely maintenance, even minor updates can become daunting tasks, impacting overall system reliability.
  Â
Refactoring Need
Refactoring is essential for both modern and legacy software projects to ensure long-term viability. recounts his experience at Netflix, where the need for automated migration tools became apparent due to the challenges in keeping software up-to-date without disrupting development 3. He describes how open-source projects like Open Rewrite have evolved to facilitate these migrations, allowing for community contributions to improve and expand refactoring recipes 4. Schneider states, "We were really struggling to get teams to move forward, and what we kept hearing from teams is just do it for me."
We were really struggling to get teams to move forward, and what we kept hearing from teams is just do it for me.
---
This approach not only aids in current migrations but also prepares systems for future technological advancements.
Related Episodes


E143: Bringing Software Engineering Best Practices to Data
Answers 383 questions

E149: One AI Agent to Rule Them All?
Answers 383 questions

E33: Evidently AI and Open Source Machine Learning Monitoring
Answers 383 questions

E160: Open Source Secrets Management with Infisical
Answers 383 questions

E88: Open Source Foundation Models for Generative AI
Answers 383 questions

E99: Developing AI Agents with Generally Intelligent
Answers 383 questions

E130: Orchestrating AI Workloads with Union AI
Answers 383 questions

E93: Making Open Source Foundation Models a Reality with Lambda
Answers 383 questions

E157: Build Your Own Production-Grade AI CoPilots With Copilotkit
Answers 383 questions

E140: Accelerating Enterprise AI Adoption with Better Agentic Workflows
Answers 383 questions

E158: Open Source Diagramming and Charting with Mermaid Chart
Answers 383 questions

E37: SeMI & Open-Source AI-Based Database Technology
Answers 383 questions

E36: Open Source Origins & Predictions (& GitHub's Role in the Ecosystem)
Answers 383 questions

E103: Competing with CoPilot to Give Developers AI Superpowers
Answers 383 questions
