Software design

SW Design, Architecture & Clarity at Scale • Sam Newman, Jacqui Read & Simon Rohrer • GOTO 2025

SW Design, Architecture & Clarity at Scale • Sam Newman, Jacqui Read & Simon Rohrer • GOTO 2025

A panel discussion with Sam Newman, Jacqui Read, and Simon Rohrer exploring the intersection of software design and architecture. The conversation delves into the critical role of communication, the practical application of Architecture Decision Records (ADRs), strategies for bridging the gap between architects and developers, and modern approaches to standardization through platform engineering and creating agile enterprise architectures.

Java Generics and Collections • Maurice Naftalin & Stuart Marks

Java Generics and Collections • Maurice Naftalin & Stuart Marks

Maurice Naftalin and Stuart Marks discuss the second edition of "Java Generics and Collections," 19 years after the first. They explore the evolution of Java from version 5 to 25, focusing on major shifts like the move toward immutability, the introduction of sequenced collections and streams, and the critical design principles of collection encapsulation. The conversation delves into the anemic domain model anti-pattern, the controversial `UnsupportedOperationException`, and the framework's inconsistent null handling, reflecting on decades of experience with the Java Collections Framework.

Clean Architecture with Python • Sam Keen & Max Kirchoff • GOTO 2025

Clean Architecture with Python • Sam Keen & Max Kirchoff • GOTO 2025

Sam Keen discusses his book “Clean Architecture with Python,” explaining how to apply architectural principles in a pragmatic, Pythonic way. The conversation covers thoughtful dependency management, the onion model, and the crucial link between good architecture and testability. Sam also explores how these principles provide a robust foundation for AI-assisted coding by creating well-defined, scoped problems for AI agents, ultimately leading to more maintainable and resilient software.

20+ Years in Tech: Things We Wish We Knew Sooner • Daniel Terhorst-North & Kevlin Henney

20+ Years in Tech: Things We Wish We Knew Sooner • Daniel Terhorst-North & Kevlin Henney

In a reflective and forward-looking conversation, Daniel Terhorst-North and Kevlin Henney explore the evolution of software development over the past 20 years and predict the key challenges and innovations for the next 20. They delve into the philosophy of programming language design, the critical need for hardware-sympathetic programming, the untapped potential of concurrency models like CSP and the Actor Model, and the future of user interfaces and decentralized technology.

Early Days of Agile Development & Is Design Dead? • Martin Fowler & James Lewis

Early Days of Agile Development & Is Design Dead? • Martin Fowler & James Lewis

In an interview with James Lewis, Martin Fowler recounts his journey into the Agile movement, starting from the object-oriented community to the pivotal Chrysler C3 project where Extreme Programming (XP) was born. He discusses the shift from upfront to evolutionary design, the creation of the Agile Manifesto, and offers modern perspectives on developer productivity, the role of GenAI in software analysis, and the enduring importance of XP's technical practices.

Solving the Hard Problems • Dave Farley • GOTO 2024

Solving the Hard Problems • Dave Farley • GOTO 2024

Dave Farley argues that modern software development should be treated as an engineering discipline, emphasizing an evolutionary and iterative approach to architecture and design. He outlines key principles for tackling complexity, focusing on optimizing for learning and ease of change through techniques like working in small steps, prioritizing testability, and managing coupling.