Foreword

It seems that people always need something to debate. Was Van Halen better with David Lee Roth or Sammy Hagar? Pepsi or Coke? Lennon or McCartney? Cats or dogs? One such debate in the early days of agile was principles versus practices. Early agilists agreed on a set of principles enshrined in the Agile Manifesto, and many practices were shared across multiple agile approaches. However, there was fierce debate about whether a team should start by understanding the principles of agile software development or whether they should begin by performing the practices even before developing a deep understanding of why.

Proponents of starting with practices took a wax-on/wax-off view of the world. If a team were to act agile, they would be agile. By going through the motions of being agile—pair programming, automating tests and builds, using iterations, working closely with a key stakeholder, and so on—a team would gradually develop an understanding of the principles of agile.

Proponents of starting with principles, on the other hand, contended that practices without principles were hollow. Going through the motions without understanding why did not lead to agility. Agility was (and still is) a focus on continuous improvement. The argument went that a team could not improve continuously if they didn’t understand why they were doing the things they were doing.

In Learning Agile, Andrew Stellman and Jennifer Greene do the best job I’ve encountered of stressing the principles of agile without de-emphasizing its practices. They point out that following practices without knowing why is likely to lead only to what they call a “better-than-not-doing-it” level of success. That is, implementing practices alone is helpful, but it falls far short of the true promise of what becoming agile can truly deliver.

I first met Andrew and Jennifer six years ago when they interviewed me for their Beautiful Teams book. Although that book does not include agile in its title, in many ways the book was about agile. A team that has embraced the principles of agile, mastered the practices it needs, and discarded practices it found unnecessary is truly a beautiful team. In Learning Agile, Andrew and Jennifer focus their discussion on agile by concentrating on today’s three most common agile methods—Scrum, Extreme Programming, and Kanban. You’ll see how their shared principles have led to different practices within each approach. For example, if you’ve wondered why Scrum requires end-of-sprint retrospectives but Extreme Programming does not, you’ll find the answer here.

In joining Andrew and Jennifer through their exploration of Scrum, Extreme Programming, Lean, and Kanban, you’ll read lots of stories. This makes sense—after all, a common practice for many agile teams is telling user stories to describe what a system’s users want. You’ll meet teams struggling to build the right functionality, taking too long to deliver last year’s requirements, mistaking agile for just another form of command-and-control management, being whipsawed by change rather than embracing it, and more. More importantly, you’ll read how those teams overcame those problems and how you can, too.

Learning Agile puts an end, once and for all, to the question of which should come first, practices or principles. Its engaging stories and discussions illustrate the simple truth that in agile there can be no separation between principles and practices. In these pages, you’ll gain a deeper understanding of how to get started (or get back on track) on your journey to becoming a genuinely beautiful team.

Mike Cohn

Author, Succeeding with Agile

Boulder, Colorado

Get Learning Agile now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.