There’s Only One Reason for Defining Agile Development…

March 1, 2011

And that is to get people talking about what it means to be Agile.

Attempts at succinctly defining Agile development – including my own – have proven difficult. In an effort to be accurate and complete, some definitions end up incorporating a lot of concepts, like the principles and values of Agile development along with the mechanics of Agile execution. As a result, the definition becomes very descriptive and wordy.

Other definitions are so short that they are vague and incomplete. What good is a definition if it doesn’t provide clarity about what is being defined in the first place?

The following quotes are just some of those that I’ve come across that have been used to describe Agile development for others:

“Agile is a framework rather than a methodology.”

“It is a set of principles rather than a methodology.”

“Agile is not any single one thing.”

“Agile is 4 values and 12 principles, with frameworks that adhere to those values and principles.”

“Agile is a philosophy.”

“Agile is what the team makes of it.”

Confused yet? Is Agile development a framework, methodology, guideline? Is it something or nothing?

Agile resists definition because it is non-prescriptive, and this drives some people nuts. But while Agile development isn’t prescriptive in the sense that teams develop software using a paint-by-numbers approach, a framework like Scrum does prescribe key roles and boundary conditions involving those roles. Scrum provides just enough structure to guide a team, but not so much that it stifles initiative and innovation.

Here’s an accurate and descriptive definition of Agile development from Scott Ambler:
“Disciplined Agile software development is an iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner by self-organizing teams within an effective governance framework with ‘just enough’ ceremony that produces high quality software in a cost effective and timely manner which meets the changing needs of its stakeholders.”
I believe that it is accurate to say that Agile development is a methodology. Agile development encompasses a variety of methods that support the values and principles of the Agile Manifesto, with a specific implementation like Scrum or XP being a method. Even this is complicated because Ken Schwaber and Jeff Sutherland, the co-creators of Scrum, are adamant about calling Scrum a framework.

In the end, it is more important to have the conversation(s) about what it means to be Agile to you and your organization. And be prepared to adapt your understanding as you learn through experience and continued education. You don’t want to wind up supporting the Manifesto for Half-Arsed Agile Software Development.

3 comments

agilescout said...

Methodology defined:

"the system of methods followed in a particular discipline"
wordnetweb.princeton.edu/perl/webwn

"A collection of methods, practices, procedures and rules used by those who work in some field"
en.wiktionary.org/wiki/methodology

Not sure if "Agile" fits into these standard dictionary definitions. I'm a big proponent of agile NOT being a methodology...simply because it doesn't PRESCRIBE anything specific... but you're exactly right when you say that a conversation of what it means to your company makes sense.

http://agilescout.com/agile-is-not-a-methodology/

March 1, 2011 at 12:02 PM
Dave Moran said...

@agilescout

Yes, the semantics involved with framework versus methodology are fun! It can be a stimulating swordfight! (Where winning doesn't gain you anything, either). But at the end of the day, at least we agree that having a conversation is what really makes sense. I read your post, interesting -- as were the comments!

March 1, 2011 at 12:50 PM

Post a Comment