I enjoy speaking at a variety of conferences, user groups, and meetups around the world. The sessions I lead tend to fall into three categories: golden oldies, impromptu discussions, and presenting new ideas.
Here is a small selection of sessions I have run to give you an idea what I might do at your event. I have adapted these talks to fit from 30 minutes to a full day, but most of them run best at approximately 90 minutes including time for questions.
Yes, Your Agile Transition Can Work. Many companies try to “go agile” without a definite plan, and it results in utter chaos. You don’t have to follow that path, even if you suspect that senior management has made this very common strategic mistake. You can recover from it, overcome it, and succeed, but only if you understand the good business reasons to “go agile”. In this talk, I share some key points about change initiatives that your organisation might not have considered, insist that it’s not too late to change course, and give you some tools to adopt agile practices, principles and values successfully.
Manufacturing Slack. I once asked a group of people in one of my classes how they intended to use in their work what they learned in the class. One person replied, “We don’t have time.” I hear this almost everywhere I go, and when I do, I let these people know that unless they invest time in applying what they learn, that training is purely a cost with no benefit. Most organisations I talk to believe that they have no time to improve. They do; but they can’t see it. In this talk I outline a method for finding slack time in your process that you can use to make the improvements you’ve wanted to make for weeks, months, or even years.
Integrated Tests Are A Scam. Integrated tests are a scam, a self-replicating virus that threatens your code base, your sanity, and your life. In this talk I discuss the viral nature of integrated tests, how they consume an organisation’s precious energy, dominate the cost of a project, and leave people feeling like automated testing hurt them rather than helped them. I describe a simple method that programmers can use to free the project from the tyranny of the integrated test, relegated it to what it does best: helping us diagnose and fix system-level problems.
The Economics of Software Design. Every month, someone new asks me the question, “How do I convince my manager to let me refactor?” While it’s true that a manager shouldn’t constrain the programmer’s plans to deliver high-quality code, the fact remains that some organisations allow their managers to assert this level of micro-control. In this talk I outline a set of models for justifying evolutionary design with basic economic concepts that relate directly to delivering, planning, and funding software projects. This talk will provide you with a solid argument to meet any skeptic’s rational objections to writing tests first and letting both low-level design and architecture emerge.
These talks work best in shorter events, like user groups and meetups. Since these talks happen spontaneously, I have no prepared material, but instead we begin with a topic, I take questions, and this leads into a combination of talk and discussion. Any topic in software development is fair game, although I know some topics better than others. Very rarely do we limit ourselves to the stated topic. In one case, a talk about test-driven development turned into a thorough discussion of software product design and how the typical large-scale corporate environment encourages us to deliver large features, while common sense business encourages us to deliver smaller ones.
Even as I explore new ideas, these talks remain popular, and I’m happy to continue running sessions on these topics.
An Introduction to Agile with the Theory of Constraints. When you first read about agile software development, you probably notice a collection of practices: pair programming, releasing frequently, planning weekly, meeting daily. What do these practices have to do with delivering better software sooner? In this talk, I introduce some essential concepts from the Theory of Constraints, then show why common agile practices help us deliver more value to our customers sooner.
The World’s Best Introduction to Test-Driven Development. When I describe test-driven development to a skeptic, I hear the same question: “How much overhead will test-driven development create?” or “How much will practising test-driven development cost me?” I never had a satisfying answer until I combined queuing theory with the tradition, single-pass Waterfall. As a result, not only can I answer these questions effectively, but any others you might have about test-driven development. You can combine this talk with a demonstration of the technique, or simply give attendees a chance to ask questions.
My Greatest Misses: What I’ve Learned From Letting My Clients Down. In the style of the campfire chat, everyone gathers in a circle as I recount some stories from my experience as a coach, mentor, team member, trainer and consultant. Through these stories, and even some more from the audience, we build a list of lessons we’ve learned while trying to teach and work with others. It all began one afternoon while I had two hours to kill at an airport, and I realised that even though my clients were pleased with the results, I had overlooked one important thing in my work. A thing that now sits front and center in every engagement.