Notes:
This talk is about a some of the solutions to the issues surrounding the software development. These solutions are grouped underthe banner of “Agile Methods”. But such a discussion needs context and so I'm first going to review what it is about software development that prevents it being easy.
Following that I'll be discussing what differentiates “Agile” software development. This isn't easy, as there are a range of development processes that claim this distinction. In practice, “Agile” seems to be more about how the development process is perceived by those involved than about the process itself.
Alastair Cockburn, one of the more instructive writers of the Agile adepts, observes (in “Agile Software Development”) that perfect communication is both desirable and impossible. One of the reasons for this is that the communicants have to make assumptions: and in considering Agile methods we have to assess the assumptions made by the advocates.
The final part of the talk is about the result of applying Agile methods to software development. It isn't a magic bullet that makes all problems go away, it is simply a way to transform ones configuration of forces into another. Hopefully the result is an improvement! (But this isn't guaranteed – unless you hold with rhetorical tricks like “if you try X and it doesn't work then it isn't X”.)