AI Shifts Software Engineering from Deterministic to Non-Deterministic - Episode Hero Image

AI Shifts Software Engineering from Deterministic to Non-Deterministic

Original Title:

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.

---
Handpicked links, AI-assisted summaries. Human judgment, machine efficiency.
This content is a personally curated review and synopsis derived from the original podcast episode.