Dan North describes a model for thinking about the age of code and argues for replaceability as a first class concern, ending up with something that looks a lot like microservices.
Chris Chedgey explores how “locality of relationship” affects coupling, cohesion, and the width of interfaces, showing structural patterns that increase or decrease complexity.
Pete Goodliffe keynotes on what it takes to become a better programmer, discussing tools for reviewing the personal skillset and techniques to help one “become a better programmer”.
Donald Belcham explains how to improve a system’s reliability by using appropriate code patterns.
Randy Shoup discusses several important aspects of engineering cultures: hiring and retention, ownership and collaboration, quality and discipline, and learning and experimentation.
Dave Farley looks at a history littered with inefficient processes resulting in poor quality and failed projects, wondering how we got here, what can be done and what does good really look like?
Dave Farley discusses the problems raised by inefficient processes creating poor quality output, too late to capitalise on the expected business value, and proposes solutions to them.
Ian Barber discusses the importance of behavior, domains and clarity of the names used when writing software or building systems.
Donald Belcham presents design patterns and development concepts that protects one’s code from external systems that may change in uncontrollable ways.
Tom Gilb keynotes on 10 key Agile principles: Control projects by quantified critical-few results, Give developers freedom, Estimate the impacts of your designs, Involve the stakeholders, etc.
Baruch Sadogursky and Fred Simon discuss the Groovy version of the epic Java Puzzlers.
Adam Tornhill teaches how to predict bugs, detect architectural decay and find the code that is most expensive to maintain, how to evaluate knowledge drain in a codebase, and much more.