Chapter 10. Values and Principles

Until now, I’ve talked about a very specific approach to agility: one style of applying XP’s practices. That’s only the beginning.

No process is perfect. Every approach to development has some potential for improvement. Ultimately, your goal is to remove every barrier between your team and the success of your project, and fluidly adapt your approach as conditions change. That is agility.

To master the art of agile development, you need experience and mindfulness. Experience helps you see how agile methods work. Mindfulness helps you understand your experiences. Experience again allows you to experiment with changes. Mindfulness again allows you to reflect on why your experiments worked—or didn’t work—in practice. Experience and mindfulness, endlessly joined, are the path to mastery.

So far, this book has focused on experience. Before you can reflect on how agile methods work, you need to experience an agile method working. With its emphasis on practicing XP, this book has given you the tools to do so.

Yet practicing XP isn’t enough—you need mindfulness, too. You must pay attention to what happens around you. You must think about what’s happening and, more importantly, why it’s happening. Ask questions. Make small changes. Observe the results. I can’t teach you mindfulness; only you have the power to do it.

I can, however, give you some things to think about as you learn. The XP practices are a manifestation of deeper agile values and principles. Think about these as you use XP. When your situation changes, use the values and principles to guide you in changing your practices.

Can any set of principles really represent agile development? After all, agility is just an umbrella term for a variety of methods, most of which came about long before the term “agile” was coined.

The answer is yes: agile methods do share common values and principles. In researching this part of the book, I collected over a hundred different values and principles from several agile sources.[57] They formed five themes: Improve the Process, Rely on People, Eliminate Waste, Deliver Value, and Seek Technical Excellence. Each is compatible with any of the specific agile methods.

The following chapters explain these themes in terms of principles and practices. Each chapter includes anecdotes about applying the principles to situations beyond standard XP. Where possible, I’ve borrowed existing names for specific principles.