These talks are designed for a technical audience to introduce new, potentially controversial ideas to development teams. My intention is to introduce ideas that can have a large, positive impact on the overall process of delivering software. What I offer is a lively presentation of new ideas and a willingness to engage in the exploration of how these ideas can contribute to projects. Because these are new ideas, they (may) challenge certain orthodoxies about how we think software should be developed. I am not a card carrying methodologist and own no shares in CASE tool companies, so I'm free to speak for software developers who make a career of shipping applications that add value for their business users. I've been doing software delivery long enough to know that there is often a large gap between how "software should be done" and practices that are effective at shipping great software. The goal of these talks is to get more people to ship really great software.

I'm very enthusiastic about all of the ideas in these talks, so these talks are a call to action not a dry academic presentation of the concepts. Life is too short for me to get involved in dry debate, I prefer experimentation and rapid feedback from applying the ideas on projects.

These talks are really fun to give, and the feedback I get is that they are fun to attend as well.

Slides from Calgary Agile Methods User Group on QA and Testing in Agile Projects (pdf) (1 Hour)

Quality Assurance on Agile Projects is a talk originally given to the Calgary IEEE/ASQ Software Quality Discussion Group. It looks at the Quality Assurance implications of the shift to Agile Methods. (1 Hour)

ICE 2002 conference, Questioning Extreme Programming notes (pdf file) looks at the reasons why agile processes have become important and what part Extreme Programming has played in this.

Questioning Extreme Programming - Should we optimize our software development process? Looks at the nature of Extreme Programming and questions the assumption that an optimized process is a good idea. The talk also asks questions about who decides what to optimize and which project outcomes should be optimized. It ends with an invitation to shape the future of software development. Posted slides refer to Calgary IEEE/ASQ Software Quality Discussion Group version of the talk. (1 Hour)

Alternatives to Software Engineering is a talk originally given to the Calgary IEEE/ASQ Software Quality Discussion Group based loosely around the concepts that motivated my Software Craftsmanship book. (1 Hour)

Lateral Thinking as a means of teaching Object Think is a talk originally given at WOOD 98 that looks at the use of creativity techniques in the teaching of object oriented thinking. (1 Hour)

Test Driven Software Development using JUnit covers how to use the JUnit testing framework to drive the development process. (1 Hour)

Minimal Methodologies and Extreme Programming uses Alistair Cockburn's methodology matrix to explore the ideas surrounding Extreme Programming. (2 Hours)

Applying the Lessons of eXtreme Programming looks at eXtreme Programming from the viewpoint of how can some of the practices be adapted to your current development process. (1 Hour)

Is eXtreme Programming for Everyone? questions whether eXtreme Programming is the only choice when teams are looking for a lightweight, small team development process. (1 Hour)