Here are some of the topics I’ve been talking about over the last few years, arranged into themes.
I’ve also provided links to slides where I have them. All content is freely available under a Creative Commons Attribution license (reuse anything but please mention me) unless stated otherwise on the sites hosting the content.
Programming and Architecture
Microservices: Software that Fits in Your Head
In which we learn the uncomfortable truth that code is all liability rather than asset and use this premise to define the goal of software development. Then using two patterns, Short Software Half-Life and Fits in My Head, we meet the Replaceable Component Architecture as an architectural style, and show how microservices can be a Replaceable Component Architecture if we optimise for replaceability and simplicity.
In which we challenge the traditional metaphor of software delivery as civil engineering, and suggest that software development is more about making things better than delivering features.
In which we learn there are no Best Practises, and that everything, ultimately is a trade-off. This version of the talk looks at some of the trade-offs we make in development, architecture and deployment.
In which we introduce the idea of patterns of effective delivery, and look at some examples touching on architecture, programming and analysis.
Kicking the Complexity Habit
In which I confess to being a complexaholic, and suggest that many of our favourite tools and techniques are merely drugs to dull the pain of inexorable complexity.
The Browser is Dead
Power Use of UNIX
In which I introduce the elegance and simplicity of UNIX, its philosophy and tooling, and its enduring appeal, using vim in outline mode.
Simplicity: the Way of the Unusual Architect
In which I return to the perennial topic of simplicity and why we have a tendency to overcomplicate things, and what you can do about it.
Organisations and Process
Why Agile Doesn’t Scale
In which we contrast the limitations of team-scale agile methods with the needs of programme-scale delivery, and look at agile through the lens of enterprise governance and delivery assurance. It’s not that agile doesn’t scale, so much as agile doesn’t have an opinion about scaling.
In which we rediscover the principle of moving the people to the work, and learn how this can help us to scale software delivery to department-scale programmes of several hundred people. We also meet Katie the programmer and explore a model for developing skills in a flat organisation.
In which we look back over 15 years of agile methods and see how well the Agile Manifesto has stood the test of time.
Event-Storming for Fun and Profit
In which we meet the concept and process of Event Storming, and see it applied in several situations, demonstrating its appeal and versatility.
Personal Development and Improvement
Jackstones: the Journey to Mastery
In which we explore some of the many facets of craftsmanship using examples of mastery from various fields, and try to figure out exactly what the programmers’ craft is.
Making a Sandwich: Effective Feedback Techniques
In which we look at feedback from a systems theory perspective and discover that giving and receiving feedback are learnable skills. Along the way we learn several techniques for delivering effective feedback, including clarifying the infamous and much-misunderstood “sandwich model” of feedback.
In which religion and software methodology show us how we fear uncertainty and some of the implications of this, and we encounter techniques like Deliberate Discovery and Real Options as ways of embracing uncertainty instead.
Deliberate Advice from an Accidental Career
In which I reflect on the people and situations which have had a lasting impact on me over 25 years of my software development career, and remind you that every day brings opportunities to inspire and guide the next generation.
Hire Education (with Trisha Gee)
In which Trisha and I describe the joys and challenges of recruiting in the tech space, from various perspectives including recruiter, candidate, HR professional and others.
Sharpening the Tools
In which I confess to getting a bit rusty, and outline some things I did about it, and things you could do to avoid being in the same situation.
In which we place the programmer in a current context and illustrate the multifaceted and multi-dimensional persona that is the modern-day software professional.
With Fred George at GOTO Chicago 2014
In which Fred and I discuss high-performing teams and organisations.
With Liz Keogh at OOPSLA 2007
In which Liz and I explore BDD and DDD.