Definition of Agile Software Development - In A Nutshell
I really like this one page introduction to agile methods compiled by Sanjiv Augustine.
But it still leaves me wanting less.
It's a really nice, fairly concise explanation of agile methods, although is still focused on development professionals with experience and/or a keen interest in software development and project management practices.
The agile manifesto also provides a similarly concise and good explanation for anyone really interested in the distinction between agile development and more traditional methods of software development and project management.
But still it leaves me wanting less.
Where I personally struggle, is where a business person, a friend or associate asks casually, "what is agile development?"
I know they're not really that interested. They certainly don't want to get into the whys and wherefores of software development practices. But they are curious and are asking more on a business-social level.
In these situations, it just asks for a one-line answer. One statement of what agile development is, what makes it different, why it is relevant. Boiled down to a simple statement. Agile development, in a nutshell.
I think the best I can do is this:
"Agile development is a different, more collaborative way of managing software projects, where the team delivers products in small steps, allowing customers to make changes as needed".
Can you do any better? (comment below)
9 January 2008 13:31
You could use an equation:
Agile = collaboration + iteration
Your friend or associate probably fears math though, so you need an English sentence without too many big words:
"Agile development is the process of developing software through regular customer review of functional software releases."
If "functional" is too techie, you could substitute "working"...
9 January 2008 17:35
I think we could focus on its inherent strengths (and remove reference to less-strong alternatives) by making it even less this way
"Agile development is a collaborative way of managing software projects, where the team delivers products in small steps, allowing customers to make changes as needed".