Agile Software Construction

In this chapter, you will be introduced to the concept, motivations, goals and principles behind the Agile Movement. You will also learn what the common features of all agile methods are. Following this, a brief review of a number of the core agile methods currently available will be presented, before a brief summary concludes the chapter.
Okay so what does "Agile" mean? And what are the methods that can be defined as Agile in this context? This question has become somewhat muddied of late as more and more people have jumped onto the Agile bandwagon. I have even seen adverts on public television by Microsoft advocating that they are an "Agile Organisation." It is therefore worthwhile setting out our stall before continuing.
The Oxford Paper Back dictionary defines Agile as:
Agile adj. nimble, quick-moving
And possibly surprisingly for a computing term this actually reflects the primary goal of the various methods that have been grouped under the term agile. That is, they aim to be nimble and quick moving in response to changes in requirements, to the people that comprise the development teams and to issues that arise during the software development process.
These methods are not trying to be "nimble" just for the sake of it; instead they have focussed on the fact that the primary purpose of software development is to produce a working piece of software! This might sound like a major case of telling your grand-mother how to suck...