Tuesday, November 13, 2012

There is no good way to eat soup with a knife.

Wherever I go, I find people who want to "implement agile" but they want to start with processes and tools. They could develop techniques first, but they want to begin with working at a very large scale and comparing capabilities across teams and maintaining individual accountability and individual review. They want a big program they can plug into their existing system.

A lot of organizations want to "go agile" starting with long-range planning, so that they can control the direction and results of the agile teams and track their progress toward n-year goals. They want an agile way to drive their teams in a straight line.

Some corporations have layers of hierarchy devoted to contacting customers, usually in the interest of controlling perceptions and getting marketing intelligence. They wouldn't let developers within a mile of anyone who actually uses the software, for fear that they would let the internal culture and personality of the company leak out. Or worse, they might verbally discount the difficulty and cost of making a change to the product.

In many places, they want to "go agile" but without changing the software. They want to add stuff on, but no testing or refactoring because the code is hard to work with, comes from a contractor, is old. They want the benefits of high quality and fluent development, but without requiring a change to the way code is written or tested.

We've tried it. It sucks.

In light of the agile manifesto, those questions all sound like "what is the best way to eat soup with a knife?"

There is no good way to eat soup with a knife.

You can eat soup with a knife, but it will be messy and slow and inefficient. You might come up with some really creative ways to eat soup with a knife, and build up a lot of process and mechanism so that you don't make too much of a mess.

It will (at best) be the least awful way to eat soup with a knife.

You will feel somewhat disadvantaged and unhappy with your whole knife-soup experience. You'll see other people enjoying their soup in cleaner clothes and you will feel a little unhappy. That is the experience you should expect.

Mind you, eating soup with a knife is better than starving to death. Maybe a crippled form of agile is a good first step on your way to a more satisfying experience. It's a fine place to start, but expect to have some disappointment and expect to have more fundamental changes take place later on.

I will happily help you start from where you are, and I am not going to make you feel bad about it. But at some time we may have a friendly conversation about soup utensils.