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.


[QCon video]

Beyond Features

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.


Decisions Decisions

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.


Software Faster

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

In which I give a potted history of the browser, and get excited about the possibilities of browser development in the age of HTML5 and modern JavaScript.


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.


Business Mapping

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.


Agile Revisited

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.


[SkillsMatter video]

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.


[QCon video]

Embracing Uncertainty

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.

[QCon video]

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.


[QCon video]

I Programmer

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.