How AI will change software engineering – with Martin Fowler - The Pragmatic Engineer Recap
Podcast: The Pragmatic Engineer
Published: 2025-11-19
Duration: 1 hr 49 min
Summary
In this episode, Martin Fowler discusses the transformative impact of AI on software engineering, comparing it to the historical shift from assembly language to high-level programming. He emphasizes the importance of adapting workflows and practices in response to AI advancements.
What Happened
Martin Fowler, a prominent figure in software engineering and one of the authors of the Agile Manifesto, joins the podcast to explore how AI is reshaping the field. He notes that the changes brought about by AI are the most significant he's seen in his career, likening it to the transition from assembly language to high-level languages. Fowler highlights that this shift introduces a non-deterministic environment that fundamentally alters how software is developed and understood.
The discussion delves into various software engineering approaches that AI enables, such as the potential increase in relevance of refactoring practices due to AI coding tools. Fowler also mentions that design patterns have seemingly fallen out of favor over the past decade, which ties into the evolving landscape influenced by AI. The episode provides insights into how Agile methodologies might be impacted by these advancements, emphasizing the need for engineers to adapt their practices to leverage AI effectively.
Key Insights
- The shift from determinism to non-determinism in software development due to AI.
- AI coding tools may make refactoring practices more relevant.
- Design patterns have declined in popularity over the last decade.
- AI's impact on Agile practices necessitates new workflows.
Key Questions Answered
How has AI changed software engineering workflows?
Fowler discusses the significant changes brought about by AI, particularly the shift from a deterministic to a non-deterministic environment. This change requires software engineers to rethink their approaches and workflows to accommodate the unpredictability that AI introduces. The integration of AI tools necessitates that teams adapt to new ways of thinking and working, pushing them to explore innovative solutions.
What role does refactoring play in AI-assisted coding?
According to Fowler, refactoring is likely to gain more importance as AI coding tools become more prevalent. With AI assisting in code generation and development, the practice of refining and restructuring existing code will help ensure that the output remains maintainable and efficient. This focus on refactoring aligns with the growing need for quality and adaptability in software engineering.
Why have design patterns fallen out of favor?
Fowler notes a decline in the use of design patterns over the past decade, suggesting that the rise of AI and new programming paradigms may have contributed to this trend. As software development evolves, engineers may be seeking more flexible and adaptive strategies rather than adhering strictly to traditional design patterns. This shift indicates a move towards more organic and responsive coding practices.
How does AI impact Agile practices?
The impact of AI on Agile practices is significant, as Fowler points out that the integration of AI tools can alter how teams operate and respond to changes. Agile methodologies emphasize adaptability and responsiveness, which AI can enhance by providing insights and automating certain tasks. However, teams will need to find the right balance between utilizing AI and maintaining Agile principles.
What was Martin Fowler's journey into software development?
Fowler's journey into software development began somewhat accidentally, as he initially struggled with writing but excelled in mathematics and physics. His interest in electronics and computing led him to a career in software. He gained early experience working with the UK Atomic Energy Authority, which set the stage for his future in programming and ultimately influenced his contributions to the field.