>

PragDave

Programmer. Author. Publisher. Speaker. Bad Gardener.

Agile Is Dead (Long Live Agility)

| Comments

Thirteen years ago, I was among seventeen middle-aged white guys who gathered at Snowbird, Utah. We were there because we shared common beliefs about developing software, and we wondered if there was a way to describe what we believed.

It took less than a day to come up with a short list of values. We published those values, along with a list of practices, as the Manifesto for Agile Software Development:

Individuals and Interactions over Processes and Tools
Working Software over Comprehensive Documentation
Customer Collaboration over Contract Negotiation, and
Responding to Change over Following a Plan

I was proud of what we did, both the process we followed and the result it produced. And I think that the existence of the manifesto has helped developers break free some some of the wasteful and soul-destroying practices of the ’80s and ’90s.

However, since the Snowbird meeting, I haven’t participated in any Agile events,1 I haven’t affiliated with the Agile Alliance, and I haven’t done any “agile” consultancy. I didn’t attend the 10th anniversary celebrations.

Why? Because I didn’t think that any of these things were in the spirit of the manifesto we produced. Having conferences about agility is not too far removed from having conferences about ballet dancing, and forming an industry group around the four values always struck me as creating a trade union for people who breathe.

And, unfortunately, I think time has proven me right. The word “agile” has been subverted to the point where it is effectively meaningless, and what passes for an agile community seems to be largely an arena for consultants and vendors to hawk services and products.

So I think it is time to retire the word “Agile.”

I don’t think anyone could object to a ban on the word when it is used as a noun. That’s just plain wrong. “Do Agile Right” and “Agile for Dummies” are just two of the innumerable attacks on the English language featuring the word. They are meaningless. Agile is not a noun, it’s an adjective, and it must qualify something else. “Do Agile Right” is like saying “Do Orange Right.”

But, beyond the grammar problem, there’s a bigger issue. Once the Manifesto became popular, the word agile became a magnet for anyone with points to espouse, hours to bill, or products to sell. It became a marketing term, coopted to improve sales in the same way that words such as eco and natural are. A word that is abused in this way becomes useless—it stops having meaning as it transitions into a brand.

This hurts everyone, but I’m particularly sensitive to the damage it does to developers. It isn’t easy writing code, and developers naturally are on the lookout for things that will help them deliver value more effectively. I still firmly believe that sticking to the values and practices of the manifesto will help them in this endeavor.

But once the word agile becomes meaningless, developers can no longer use it as a guide to what is useful in their practice. We may as well simply globally replace the word agile with whitespace.2

Moving to the Right

Let’s look again at the four values:

Individuals and Interactions over Processes and Tools
Working Software over Comprehensive Documentation
Customer Collaboration over Contract Negotiation, and
Responding to Change over Following a Plan

The phrases on the left represent an ideal—given the choice between left and right, those who develop software with agility will favor the left.

Now look at the consultants and vendors who say they’ll get you started with “Agile.” Ask yourself where they are positioned on the left-right axis. My guess is that you’ll find them process and tool heavy, with many suggested work products (consultant-speak for documents to keep managers happy) and considerably more planning than the contents of a whiteboard and some sticky notes.

If you see this too, then it’s more evidence of the corruption and devaluation of the word “agile.”

(Of course, some of these consultants may well have paid for a two-day training course. I haven’t, so they are masters and I am not, which means I’m probably wrong.)

Back to the Basics

Here is how to do something in an agile fashion:

What to do:

  • Find out where you are
  • Take a small step towards your goal
  • Adjust your understanding based on what you learned
  • Repeat

How to do it:

When faced with two of more alternatives that deliver roughly the same value, take the path that makes future change easier.

And that’s it. Those four lines and one practice encompass everything there is to know about effective software development. Of course, this involves a fair amount of thinking, and the basic loop is nested fractally inside itself many times as you focus on everything from variable naming to long-term delivery, but anyone who comes up with something bigger or more complex is just trying to sell you something.

All of these sentences are imperative—they are based on verbs telling us what to do and how to do it.

And that leads me to my suggestion.

Let’s abandon the word agile to the people who don’t do things.

Instead, let’s use a word that describes what we do.

Let’s develop with agility

  • You aren’t an agile programmer—you’re a programmer who programs with agility.

  • You don’t work on an agile team—your team exhibits agility.

  • You don’t use agile tools—you use tools that enhance your agility.

It’s easy to tack the word “agile” onto just about anything. Agility is harder to misappropriate.

And that’s important—you can buy and sell labels. Attend a short course, and suddenly you can add a label to your job title. But you can’t buy experience—you can only earn it.

And let’s protect our investment

Ultimately, what we do trumps what we call it. But good words help us communicate effectively.

We’ve lost the word agile. Let’s try to hang on to agility. Let’s keep it meaningful, and let’s protect it from those who would take the soul of our ideas in order to sell it back to us.

Updated 3/11: Thanks to numerous folks who pointed out I’d mislabeled “agility” as an adverb. Also fixed the hyperlink to the Agile Manifesto.


  1. I started thinking about this blog post while I was visiting Agile India 2014, my one and only conference on agility. I went to that not because of the topic, but because of my respect for the organizer, Naresh Jain.

  2. And, yes, I’ve fallen into the trap myself. When Ruby on Rails came along, I was impressed with the agility it gave me when working on web projects, so I called the book I wrote “Agile Web Development with Rails.” If I was writing that book today, the title would be different.

Comments