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:

Wikipedia

(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 isAgile 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!]

[Link]

SearchSoftwareQuality.com

“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.”

[Link]

TheFreeDictionary

(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.”]

[Link]

AgileMethodology.org

“Agile methodology is an approach to project management, typically used in software development.”

[Link]

KnowledgeRush.com

“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.”

[Link]

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.”

[Link]

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?

[Update: (23Mar12)]:

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.”

[Link]

This definition also does not help in determine when a methodology qualifies as an agile methodology.

Have you found anything better?

Next>> 4 Tests to determine if you are following Agile development

Comments
20 Responses to “What is the Definition of “Agile Methodology”?”
  1. A well thought out definition of What Agile Software Development Really should be is given on page Understand Agile.

    Motivation for this (new) definition can also be found here: http://ggreiter.wordpress.com/category/agile-software-development/

  2. srirambyrapaneni says:

    What is this??

    copy paste from other blogs????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

    • Udayan Banerjee says:

      Yes – you are correct.

      These are the collection of definitions of agile methodologies as available in different websites and from agile thought leaders. As you can see, there is no universally accepted definition of agile methodology.

      And … that is the point I am trying to make.

  3. For defining Agile we should focus on the goal of Agile rather than on the misleading, far too specific way suggested by the Agile Manifesto: Please read
    The New (2011) Definitions of Agile and
    Be agile – forget the Manifesto.

  4. mawi says:

    Amblers definition full of marketing jargon… I would posit that there’s not one word that isn’t weighed carefully there, definitely not marketing jargon.

  5. Mahadevan says:

    Any definition of agile, should emphasis more on the individuals,team interactions and collobaration.
    (taking the cue from the Manifesto, out of 12 principles – 8 of them are about individuals,team and collobaration.)
    Even in the definition of “Scott Ambler” by saying that “iterative and incremental by ..” looks like the process takes precedence over the team of individuals, the team may choose not to be iterative.
    The Definition of agile itself shoule be adaptive and agile, so that the process can be changed by the individuals in the team – in that sense we should not be able to define it.
    We should only have a guide line.

  6. setandbma says:

    Kaushal:

    I think you have missed the point I was trying to make. What I was trying to point out was that though we are talking and using Agile approach to software development, we have not figured out a concise way of defining what agile is. The best definition seems to be “Methodologies that adhere to the spirit of Agile Manifesto”

    What I did not like about Scott Ambler’s definition is that it is full of marketing jargon.

    • Mike says:

      Agreed. I have been in Information Technology for 30 years. Started at the bottom in computer operations, became a developer, then Project Manager and ultimately Director of IT for 4 years. I’ve never read such crap. This is someone simply selling something. In my programming day we didn’t call it Waterfall or Agile or etc. and we solved many business problems quite nicely. The idea that, when using Waterfall and errors are found, you have to go back and totally rewrite programs is nonsense.

      Another comment regarding Waterfall in the methodology comparison was “The problem can only be fixed by going back and designing an entirely new system”. Again….crap !!!

      What has happened to IT !!!!! It used to be a great profession. I would think many of today’s websites are being developed with so called AGILE. Got news for you. I find errors with at least 50% of the websites I visit, some even being online job application websites.

  7. Kaushal says:

    If you need to know more, understand or practise just the definition won’t help.

  8. Kaushal says:

    I don’t understand, what do you mean “I don’t like it”. You can’t write a 1-2 line statement to describe & encompass the entire agile gamut. Its a methodology, a paradigm shift based on similiar prinicples, not a IEEE standard. So definitely everyone won’t give you the same textual description.

    You must distinguish between definition & description. The definition by AgileMethodology.org is a perfect 1 line definition, of course not detailed for anyone to know and/or understand agile.

  9. As a person whose seen agile work for over 5 years, I wanted to help answer some of these from my point of view:

    Iterative and incremental are not the same. That was clearly explained in my agile training and by several agile coaches since then. Evolutionary might be the same as incremental.

    Why the word highly? Because many argue their teams collaborate (and they are wrong). We use the term highly to allow them to think this is true, but their current team’s state of “collaboration” is not good enough.

    Self-organizing is a big part of the Toyota concept. Put the big red button to stop the assembly line next to the worker who will see the problem first. Don’t make him go through a manager first, delay the button push, and therefore put people at risk.

    I agree that any methodology prescribes a governance framework, but the key word here is effective. I think this is a jab at waterfall’s failure in the software industry, but I see it as a divider and would not include it in my definition.

    “just enough”… Alistair Cockburn is very good at talking about just enough process and no more. I’m not a fan of the word ceremony since it implies doing something for the sake of doing it.

    On the last bullet- very few methodologies desire a support for the “changing” needs of their stakeholders. Also, there is the proven side of this. I do agree with you that this statement is here as a common sense statement and not a differentiator.

    • rajariyd says:

      good applicational agile methodology is to have development of application that would be more emphasis focused on the smaller units that is required to be deliver as early as possible in the market after having enough if testing.

Trackbacks
Check out what others are saying...
  1. […] What is the Definition of “Agile Methodology”? […]

  2. […] we don’t have any well accepted definition of agile to fall back on – we need to go by what the popular opinion […]

  3. […] remember, there is no common accepted definition for agile. Yes, there is the Agile Manifesto but that can hardly be called a definition. It is more of a […]

  4. […] is no clear definition of what Agile Methodology means. So you need to thrash out any difference in understanding between you and the vendor. You may find […]

  5. […] I started working on this post, I was desperately looking for a decent definition of agile but could not find one. So, I modified the definition in Wikipedia to something […]

  6. […] Is there any accepted definition for agile methodology which can help us determine if specific methodology can be classified as agile? I have looked and have not found any. […]

  7. […] taken many forms and beyond the Agile Manifesto there is no commonly accepted definition of agile (What is the Definition of “Agile Methodology”?). There are so many different methodologies which are classified under agile – these […]



Leave a reply to Kaushal Cancel reply