How Will AI Change Software Engineering? Martin Fowler

TL;DR
AI is the biggest shift in software engineering since assembly moved to high-level languages, mainly because it introduces non-determinism into a field built on determinism. Vibe coding suits exploration and throwaway prototypes but shouldn't build anything with long-term value, since it removes the developer's learning loop. Refactoring and rigorous testing become more important as AI writes more code.
Transcript
What similar changes have you seen that could compare to some extent to AI in the technology field? It's the biggest I think in my career. I think if we looked back at the history of software development as a whole, the comparable thing would be the shift from assembly language to the very first highle languages. The biggest part of it is the shift... Read More
Key Insights
- AI is the biggest change in Martin Fowler's career, and across the whole history of software development the only comparable shift is the move from assembly language to the first high-level languages.
- The core disruption of AI is the shift from determinism to non-determinism. Engineers now work in an environment that is non-deterministic, which completely changes how software is built and reasoned about.
- Vibe coding is useful for explorations, throwaways, and disposable work, but is not suited for anything intended to have long-term capability or value.
- Vibe coding removes the learning loop, an important part of development, because the engineer no longer works through the problem themselves and loses the understanding that normally comes from writing the code.
- Refactoring as a practice will probably become more relevant with AI coding tools, not less, according to Fowler, who authored the book Refactoring.
- LLM output must be tested rigorously, and combining AI tools with deterministic techniques may be what engineering teams actually need to work reliably.
- Design patterns appear to have gone out of style over the last decade, a trend Fowler discusses alongside the changing shape of software engineering practice.
- The skills that make a great engineer remain largely unchanged despite rapid changes in tooling and workflows, and generative models are especially interesting for working with legacy code.
Install to Summarize YouTube Videos and Get Transcripts
Explore YouTube Video Summarizer or Get YouTube Transcript Extractor
Questions & Answers
Q: How will AI change software engineering according to Martin Fowler?
Martin Fowler calls AI the biggest change in his career and, across the whole history of software development, comparable only to the shift from assembly language to the first high-level languages. He argues the biggest part of the change is the shift from determinism to non-determinism: engineers suddenly work in a non-deterministic environment, which completely changes how software is built. He also emphasizes that AI output must be tested rigorously and that combining AI with deterministic techniques may be what teams need.
Q: What is vibe coding and when should you use it?
Vibe coding, in Fowler's view, is good for explorations and for throwaway, disposable work. He warns against using it for anything intended to have long-term capability. The key problem is that vibe coding removes a very important part of development, the learning loop, meaning the engineer no longer builds the understanding that normally comes from working through and writing the code themselves. It suits prototypes and experiments, not durable production systems.
Q: Why does Martin Fowler think refactoring will become more important with AI?
Fowler, who authored the popular book Refactoring, states that refactoring as a practice will probably get more relevant with AI coding tools rather than less. As AI generates more code, the ability to restructure and improve that code, alongside rigorous testing of LLM output, becomes essential. He frames combining AI tools with deterministic techniques as a promising direction, positioning refactoring as a core discipline that keeps AI-generated software maintainable and reliable over time.
Q: What change does Martin Fowler compare AI to in software history?
Fowler says that if you look back at the history of software development as a whole, the comparable change to AI would be the shift from assembly language to the very first high-level languages. He considers AI the biggest change he has seen in his career. The most significant aspect, he explains, is the shift from determinism to non-determinism, which fundamentally alters the environment engineers work in and how they approach building software.
Q: Why does vibe coding remove the learning loop?
According to Fowler, when you use vibe coding you remove a very important part of the development process, which is the learning loop. Normally, engineers deepen their understanding by working through problems and writing code themselves. Vibe coding shortcuts that process, so the developer misses the learning that comes with it. This is why Fowler limits its use to explorations and throwaway, disposable work rather than anything requiring long-term capability or maintained understanding.
Q: Who is Martin Fowler and what is he known for?
Martin Fowler is a highly influential author and software engineer in domains like agile, software architecture, and refactoring. He is one of the authors of the Agile Manifesto in 2001 and the author of the popular book Refactoring, as well as Patterns of Enterprise Application Architecture. He is Chief Scientist at Thoughtworks, a role he has held for over a decade, and regularly publishes articles on software engineering on his blog, MartinFowler.com.
Q: How did Martin Fowler get into software development?
Fowler got into software in the late 1970s and early 1980s, largely by accident. He was strong in mathematics and physics but poor at writing, so he leaned toward engineering and electronics. Before university he spent a year at the UK Atomic Energy Authority programming in Fortran 4. After a degree mixing electronic engineering and computer science, he chose computing over traditional engineering because it offered more opportunity, status, and pay, and knew Unix from college.
Q: What does a Chief Scientist at Thoughtworks do?
Fowler jokes that as Chief Scientist he is chief of nobody and does no science. The title was common around the time he joined for public-facing ideas people, noting Grady Booch was Chief Scientist at Rational then. At Thoughtworks anyone could choose their own job title, but Fowler was assigned Chief Scientist rather than picking his own preferred options like loudmouth. He joined Thoughtworks 25 years ago after they became his favorite client, having helped rescue a large project.
Summary & Key Takeaways
-
Martin Fowler, Chief Scientist at Thoughtworks and author of Refactoring, calls AI the biggest change in his career. He compares it only to the shift from assembly to high-level languages, and stresses the move from determinism to non-determinism as the defining disruption for engineers.
-
On vibe coding, Fowler sees value for exploration, throwaways, and disposable prototypes, but warns against using it for anything with long-term capability. It removes the learning loop, an essential part of development where engineers build understanding by working through problems themselves.
-
Fowler argues refactoring grows more relevant with AI tools, LLM output must be tested rigorously, and combining AI with deterministic techniques helps teams. Despite new workflows, generative models aiding legacy code, and shifting agile practices, the core skills of a great engineer stay largely unchanged.
Read in Other Languages (beta)
Share This Summary 📚
Summarize YouTube Videos and Get Video Transcripts with 1-Click
Try YouTube Summary with ChatGPT & Claude or YouTube Transcript Generator
Explore More Summaries from The Pragmatic Engineer 📚
Summarize YouTube Videos and Get Video Transcripts with 1-Click
Try YouTube Summary with ChatGPT & Claude or YouTube Transcript Generator


