December 29, 2005

...Learn TDD with Codemanship

What Is "Agile"?

Confusion abounds on the discussion groups and in "agile" software development teams scattered around and about the countryside. Just what the bloody hell do we mean by "agile"? How do we know when we're being "agile"? Are "evolutionary" and "agile" the same thing? Isn't evolution a slow, incremental process? That doesn't sound very "agile" to me.

Before yet another methodologist sticks the word "agile" in front of some other words like "CMMi" or "Microsoft Solutions Framework", maybe it would be a good idea to finally, once and for all, pin down exactly what we mean by "agile".

For example, is Agile Software Process Improvement actually "agile"? I have no idea, because I don't know what that means. I suspect in reality it should be "Evolutionary Software Process Improvement", and there's nothing "agile" about it. But I simply can't know for sure until we all agree on a testable definition for "agility" - one that can be applied to real situations to tell us objectively just how "agile" we're really being.

What's needed are some scientific underpinnings for agility so we can kow for sure when we're being agile, and when we're not. I'll get started on that straight away... If you have any ideas, please drop me a line.
Posted 6 days, 8 hours ago on December 29, 2005