AI Shifts Software Engineering from Deterministic to Non-Deterministic
How AI will change software engineering – with Martin Fowler
Resources
Resources & Recommendations
Books
- "Refactoring" by Martin Fowler - This book, now in its second edition, details code smells and refactoring techniques, emphasizing small, behavior-preserving changes to improve code quality.
- "Extreme Programming Explained: Embrace Change" by Kent Beck - Mentioned as the "white book," this is considered the birth project of extreme programming (XP).
- "Patterns of Enterprise Application Architecture" by Martin Fowler - A collection of over 40 architectural patterns, this book aims to provide a common vocabulary for discussing software architecture.
- "Design Patterns: Elements of Reusable Object-Oriented Software" (also known as the "Gang of Four book") - A foundational text on software design patterns, referenced in the context of architectural patterns.
- "Patterns in Distributed Systems" by Unmesh Joshi - A book that provides a language and framework for understanding and discussing distributed systems.
- "Thinking, Fast and Slow" by Daniel Kahneman - Recommended for its insights into probability and statistics, which are crucial for understanding software development and life in general.
- "The Power Broker" by Robert Caro - A biography of Robert Moses, highlighting how power operates in a democratic society, praised for its brilliant writing and depth.
- "The Lyndon B. Johnson (LBJ) biography" by Robert Caro - A multi-volume biography of former US President Lyndon Baines Johnson, equally brilliant and insightful as "The Power Broker."
People Mentioned
- Martin Fowler (Author, Software Engineer, Chief Scientist at Thoughtworks) - The guest of the episode, known for his work in agile, software architecture, and refactoring.
- Kent Beck (Software Engineer, Author) - A key figure in extreme programming and agile, and a significant mentor and influence on Martin Fowler's early career.
- Jim Odell (Independent Consultant, Teacher) - Martin Fowler's early mentor and a significant influence in his career, particularly in object-oriented thinking.
- Rebecca Parsons (Former CTO at Thoughtworks) - Instrumental in creating Thoughtworks' technology advisory board and the Technology Radar.
- Daryl Smith (Technical Assistant to Rebecca Parsons) - Conceived the idea of the Technology Radar metaphor.
- James Lewis (Software Engineer) - Collaborated with Martin Fowler on microservices and discussed his experiences with AI tools like Cursor.
- Anish Joshi (Colleague of Martin Fowler) - Explores using LLMs to co-build abstractions and understand unfamiliar environments, and authored articles published on Martin Fowler's blog.
- Grady Booch (Chief Scientist at Rational, Software Architect) - Mentioned as holding a similar title to Martin Fowler and offering insights into the evolution of software architecture and the impact of cloud services.
- Alister Cockburn (Agile Manifesto Signatory) - Quoted for his observation that brilliant ideas are either ignored or misinterpreted.
- Bob Martin (Agile Manifesto Signatory) - Insisted on creating a manifesto at the agile gathering.
- Simon Willison (Software Engineer, Blogger) - Stresses the importance of testing when working with LLMs and is a trusted source of information for Martin Fowler.
- Birgitta Böckeler (Colleague at Thoughtworks) - Anthropomorphizes LLMs as "Dusty the anthropomorphic donkey" and explores spec-driven development with LLMs.
- Steve Yegge (Software Engineer) - Mentioned as a notable figure pushing the boundaries of working with LLMs.
- Adam Thornhill (Software Engineer, Author) - Does interesting work combining LLMs with other tools for more effective refactoring.
- Jimmy Nilsson (Author, Software Engineer) - Wrote an early book on software architecture from a Microsoft perspective, praised for his tentative and nuanced approach.
- Daniel Kahneman (Psychologist, Economist, Author) - Author of "Thinking, Fast and Slow," recommended for understanding probability and statistics.
- Robert Caro (Biographer) - Author of "The Power Broker" and the multi-volume Lyndon B. Johnson biography, praised for his brilliant writing and insights into power.
Organizations & Institutions
- UK Atomic Energy Authority (UKAEA) - Martin Fowler's first professional experience, where he programmed in Fortran 4.
- Coopers & Lybrand (Consulting Company) - Martin Fowler's first job after university.
- Ptech (Consulting Company) - A small consulting company Martin Fowler joined after Coopers & Lybrand.
- Thoughtworks (Global Software Consultancy) - Martin Fowler's current employer where he serves as Chief Scientist, known for its emphasis on technical excellence and sharing knowledge.
- Chrysler (Automotive Manufacturer) - The location of the C3 project, which was the birthplace of Extreme Programming, where Martin Fowler first encountered refactoring.
- University of Illinois - Where the first refactoring browser in Smalltalk was developed.
- IBM - Their Visual Age tools were early adopters of refactoring concepts.
- Federal Reserve in Boston - Mentioned as an example of a highly regulated organization that is cautious about adopting new technologies like LLMs.
- Anthropic (AI Lab) - Mentioned as a leading AI lab where engineers are experimenting with LLMs for prototyping.
Tools & Software
- Fortran 4 - An early high-level programming language Martin Fowler used.
- Unix - An operating system Martin Fowler was familiar with early in his career.
- Smalltalk - An object-oriented programming language that Martin Fowler enjoyed programming in and where refactoring concepts originated.
- Java - The language used in the first edition of Martin Fowler's "Refactoring" book.
- JavaScript - The language used in the second edition of Martin Fowler's "Refactoring" book for its broader audience and less object-oriented focus.
- IntelliJ IDEA - An IDE that implemented automated refactoring features early on.
- Resharper (JetBrains) - An extension for Visual Studio that provided advanced refactoring capabilities.
- Xcode (Apple) - Apple's IDE, mentioned for its initial lack of refactoring capabilities for Swift.
- Cursor - An AI coding tool used by James Lewis for refactoring, highlighting its inefficiency for simple tasks.
- Godot - A game engine, mentioned in the context of using LLMs to learn unfamiliar APIs.
- R - A programming language for statistical computing, mentioned as something Martin Fowler occasionally uses LLMs to get help with.
- Cloud Code - An AI coding team at Anthropic.
- ClickHouse - A database analytics tool mentioned in the Thoughtworks Technology Radar.
- VLLM - A tool for efficiently learning LLMs on cloud or on-prem, mentioned in the Thoughtworks Technology Radar.
- Pre-commit hooks - Tools for enforcing code quality before commits, mentioned in the Thoughtworks Technology Radar.
- Fast MCP - A framework for MVC servers, mentioned in the Thoughtworks Technology Radar.
Websites & Online Resources
- Martin Fowler's Blog (martinfowler.com) - Regularly publishes articles on software engineering, including contributions from his colleagues, and serves as a primary learning resource for Martin Fowler.
- Thoughtworks Technology Radar - A bi-annual publication by Thoughtworks that identifies significant changes in the software development landscape, recommending what technologies to adopt, assess, trial, or hold.
- Stack Overflow - A popular Q&A website for programmers, mentioned as a previous source of code snippets and a parallel to how LLMs are being used today.
- Wikipedia - Used as a benchmark for trustworthiness when discussing the reliability of LLM-generated information.
Other Resources
- Agile Manifesto - A document created in 2001 by 17 software developers, outlining principles for agile software development.
- No Silver Bullet - A classic article by Fred Brooks arguing against the idea of a single technological breakthrough that would dramatically improve software productivity.
- Tabletop Gaming - Martin Fowler's hobby, which has helped him with probabilistic reasoning.
- Concordia - A board game recommended for its accessible yet rich decision-making gameplay.