Thursday, May 17, 2007

Agility is not the point

Software is too damned hard to spend time on things that don't matter. So, starting over from scratch, what are we absolutely certain matters?

...

Listening, Testing, Coding, Designing. That's all there is to software. Anyone who tells you different is selling something.
Kent Beck on the Extreme Programming page at the Portland Pattern Repository

The message of Extreme Programming, now more commonly referred to as XP, was about only doing the things that matter and doing those things as best as you could. That was about minimising waste, not agility.

I remember something in the first edition of Extreme Programming: Embrace Change about thinking about acting as if we lived in a society of plenty instead of a society of scarcity. That was about mutual respect and cooperation, not agility.

Agility became the story of "lightweight" methods only after the Agile manifesto. Before that it was something else.

The current Agile story ends up with very valid objections by people like James Bach and perhaps the whole Post-Agilism thing because the "Agile" word is empty. In my opinion, Agile is also an inaccurate way of describing what I want to do, why I want to do it, and who I want to be.

Lean
is the story that Agile should have been.

Only do the things that matter. Do the things that matter the best you can. Respect people.

Agility is just a side effect...

Well, perhaps I exaggerate...

From Isao Kato in TPS vs. Lean Additional Perspectives, the four aims of the Toyota Production System are as follows:
  • Deliver the highest possible quality and service to the customer
  • Develop employee potential based upon mutual respect and cooperation
  • Reduce cost through the elimination of waste in any given process
  • Build a flexible production site that can respond to changes in the market
So it's not so so much that agility is just a side effect but rather that agility is definitely not the only point.

4 comments:

Clinton Begin said...

IMHO: The three biggest problems with software development today:

* Development teams / IT departments not listening to their customers / business organizations that they serve. When Developers / IT think they know what's right for the business -- they don't.

* Not being consistently disciplined in following the methodology selected for the project, regardless of what it is.

* Not allowing the methodology to be flexible to changes in the project or based on yesterday's weather.

The last two would seem to contradict, they probably do. But that's where good project management skills come in: finding that balance.

Analogy: Driving the methodology. Cars can change course and still get to where they're going. So can methodologies. But driving like an undisciplined lunatic (or while drunk) is dangerous. ;-)

robertdw said...

Damn, Jason... you consistently come up with new distilled insights. Keep it up.

You've just managed to summarise a large part of something that's been bugging me for months.

Jim Bullock said...

"Lean is the story that Agile should have been."

Perhaps. But if so, why is it so. What's different and how did it come to be that way?

Jason Yip said...

Hi Jim,

Do you mean what's different in terms of the story of Lean vs Agile?

In terms of how it came to be that way, I'm not sure. It just did. On reflection, I think it came out the wrong way but it's correcting now.