This book is about exploiting as many features of the agile movement as possible to enhance our software development processes. It is about selling you the concept o fagile software development. It is about how to make your projects agile. It is about what tools you should use to become agile.
This book is about not rejecting anything out of hand just because it seems radical, but also of not just accepting all of a concept just because the literature says you should. It is about being realistic about what you can achieve in your organisation/team/situation.
It is not a detailed in-depth presentation of any of the agile methods (there are already very good books available that focus on each approach in depth – so why write another one?), it is not a diatribe for, or against, any particular method, nor is it a prescription for all of software development’s ills.
This book is thus a guide to the agile software development methods currently available!
Why This Book?
Lets start of with a basic question “Why should you read this book?” The answer, as I hope you will see, is because it brings together a range of the most popular [Agile Methods] and presents them back to back allowing you, the reader, to gain an insight into what it means to be agile, what agile methods are (and are not), what Agile Modelling is and what XP (Extreme Programming) is. However, it goes further than this and considers how some of the approaches can be used together, how you can plan larger agile project (using a feature-driven approach) and how you can introduce agile methods into your organisation. All of this is done in a practical, no-nonsense manner that cuts through the hype and tells it to you straight!
That is, you should read this book because it tells you how to actually plan, organise and approach software systems in an Agile Manner. It does not try to sell you an evangelical, puristor (pardon the pun) extreme view. Instead it introduces the core concepts and methods in a concise and easy digested form. It also evaluates how successful the core techniques, such as Extreme Programming (often referred to as XP) and Agile Modelling can be, as well as what problems may be encountered. It then shows how some of these problems have been overcome on real-world projects by combining XP, Agile Modelling and Feature-Driven Development.
Without a book like this you can be left wondering what to do with Extreme Programming on a large software project. You might find yourself asking “must I always pair program if I wish to be agile?” or “should I do any design at all if I want to be agile?” or “how can I plan a project to be delivered to a client who uses a PRINCE 2 project management method when I am developing using an agile approach?” With this book you will know!