What is the Definition of “Agile Methodology”?
I was looking for a nice definition of Agile Methodology and I was very confident that it would be easy to find. To my utter surprise, I could not locate any statement which even remotely looks like a definition. [Update: Current Wikipedia definition looks reasonable!]
BTW: Do have a look at the 4 Tests to determine if you are following Agile development
Here are some examples:
(14Apr09): Agile software development is a group of software development methodologies that are based on similar principles.”
[Update: (11May10): I have changed the definition in Wikipedia to - "Agile software development refers a group of software development methodologies that are based on principles of iterative development where requirement evolves through collaboration between self-organizing cross-functional team."]
[Update (1Dec11): Latest Wikipedia definition is "Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams." Google best guess shows this answer directly!]
“In software application development, agile software development (ASD) is a methodology for the creative process that anticipates the need for flexibility and applies a level of pragmatism into the delivery of the finished product.”
(14Apr09): “(They are) Methodologies for designing software that have proven to be more effective in dealing with business realities such as changing requirements during development. It promotes industry best practices that emphasize teamwork, customer involvement and the frequent creation of small, working pieces of the total system.”
[Update: (23Mar12): "An umbrella term for a variety of best practices in software development. These methods have proven to be more effective in dealing with changing requirements during the development phase, which always seem to occur. The agile methods emphasize teamwork, customer involvement and the frequent creation of small, working pieces of the total system."]
“Agile methodology is an approach to project management, typically used in software development.”
“In software engineering, agile processes are low-overhead processes that accept that software is difficult to control. They minimize risk by ensuring that software engineers focus on smaller units of work.”
Disciplined Agile Software Development: Definition - Scott Ambler
“(It 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 still do not like it.
- Is iterative, incremental & evolutionary the same? Or, has these three words been put together to be on the safe side? [Update: Here is a nice post by Alistair Cockburn explaining the difference between iterative and incremental]
- Why highly collaborative manner?
- Is self-organizing teams a must?
- Any methodology requires an effective governance framework.
- What does “just enough” ceremony convey?
- Which software development methodology does not claim that it produces high quality software in a cost effective and timely manner which meets the changing needs of its stakeholders?
Notes on the writing of the agile manifesto - Alistair Cockburn
“A system of methods designed to allow the development team to match and track the business needs, especially in a context where business needs change frequently, important facts change, or where we are obliged to adapt to important uncontrolled factors.”
This definition also does not help in determine when a methodology qualifies as an agile methodology.
Have you found anything better?