
Four Goals
In this book, I shall
· Build distinctions and vocabulary for talking about software development
· Use that vocabulary to examine and anchor critical aspects of software projects that have been pushed to the sidelines too often
· Work through the ideas and principles of methodologies as "rules of behavior"
· Merge our need for these rules of behavior with the idea that each project is unique, and derive effective and self-evolving rules
I hope that after reading this book, you will be able to use the new vocabulary to look around your project, notice things you didn't notice before, and express those observations. As you gain facility, you should be able to
Discuss Extreme Programming, the Capability Maturity Model, the Personal Software Process, or your favorite process Derive when each process is more or less applicable Understand people who have differing opinions, abilities, and experience.
Audience
Each person coming to this book does so with a different experience level, reading style, and role. Here's how you might read the book to use it to your greatest advantage.
By Experience
This book is written for the more experienced audience. The book does not contain procedures to follow to develop software; in fact, core to the book is the concept that every technique has limitations. Therefore, it is impossible to name one best and correct way to develop software. Ideally, the book helps you reach that understanding and then leads you to constructive ideas about how to deal with this real-world situation.
If you are an intermediate practitioner who has experience with software-development projects, and if you are now looking for the boundaries for the rules you have learned, you will find the following topics most helpful:
