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.
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 ¶
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.
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.
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.
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.
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.