My Software Craftsmanship book is now available in bookstores everywhere, as is Questioning Extreme Programming.

Feb 2003 What to do when the Estimate is Wrong a lighthearted look at how projects get estimated, and how project disasters happen.

InformIT has post a series of my articles throughout the start of 2002.

Incremental Development, a followup to the earlier Incremental Requirements article, looks at what it means to do Incremental Development from the point of view of the development team and the users of applications.

How to Crash and Burn your Java project Since many Java projects seem destined to fail I though that it would be useful to provide some advice on how to speed up the process. This article is a parody. Any resemblance to your project is purely coincidental and should not be taken as any indication that your project will actually succeed in it's goals.Also available on the InformIT Website: How to Crash and Burn your Java project (login required, registration is free)

Applying the Lessons of eXtreme Programming (36K pdf) Although eXtreme Programming has been explained by Kent Beck, there are many benefits to adopting eXtreme Programming (XP) practices in other development processes. The benefits of adopting the complete XP approach are outside of the scope of this paper, what is discussed here are the lessons that XP offers to other development processes. This paper initially discusses the benefits available from adopting XP style unit testing on a project, and then moves on to identify useful lessons that can be learned from other XP practices. The paper concludes by asking questions about the nature of process improvement in software development and how we can make our software serve society. Please note that this paper is © 2000 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.

Is XP for Everyone? Although eXtreme Programming is very visible right now and is starting to dominate the conversation about Lightweight or Minimal Methodologies, there are many alternatives available. Read on to ponder the question "Is XP right for your team or not?"

Test Cases from Use Cases Creating Test Cases from Use Cases turns out to be very easy when using Alistair Cockburn's format for Use Cases, testers will thank you for using use cases.

Using Use Cases for Requirements Capture Use Cases have proved to be an effective mechanism for the capture of requirements. This document uses Alistair Cockburn's format for Use Cases and adds in ideas about how to create and review Use Cases.

Incremental Requirements (at the Extreme Programming website). This paper talks about the distinction between of Capturing Requirements for Prioritization and Capturing Requirements for Implementation.

Creativity in Software Development Creating Software is one of the most creative activities that humans undertake. The main limitation in software is the Human Imagination, and the limits on that are all self imposed. Through the Software Engineering model we see a linear, sequential model of Software Development, something that drastically reduces our ability to create really great software.

Uncertainty in Software Development Uncertainty is one of the few certainties about software development. As humans we are not very good at creating precise estimates, but we all crave precision when we recieve estimates from others. This paper explores these ideas. The book Inevitable Illusions covers similar ground in a lot more detail.

The Myth of Change Control The Software Engineering model of Software development has a major flaw. There is an association with a linear, sequential process, we even have a neat name for this linear, sequential process, the "Waterfall" life cycle, where everything flows neatly from one stage or phase to another. Although this "waterfall" process of software development has supposedly been proven to be invalid, most software developers still talk as if it is alive and well.

OOPSLA 99 Design for maintenance workshop details are available. As are the TOOLS USA 2000 Workshop on Education and Training (WET) details.