What makes Agile agile


Silly question – or is it? How do you judge if a methodology can be classified as agile methodology? Can Iterative or Spiral development methodology be classified as agile? What about Six Sigma or Lean process? On what basis will decide will you decide? If you go by the Forrester classification, Iterative or Spiral development methodology is not agile where as Six Sigma and Lean is agile.

In the survey report Agile Development Management Tools, Q2 2010, Forrester classifies Scrum, Agile Modeling, Feature-Driven Development, Test-Driven Development, eXtreme Programming, Lean Development, Microsoft Solution Framework for Agile, Agile Data Methods, Adaptive Software Development, Six Sigma, Crystal, Behavior-Driven Development and Dynamic System Development Methodology under agile methodology but classifies Rational Unified Process, Iterative Development or Spiral under Iterative Development.

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.

Can we fall back on the agile manifesto or the 12 principles behind the agile manifesto? If you study them carefully you will realize that they are more of an aspirational statement rather than specific guideline which can be used to evaluate a methodology.

For example, take the first statement in the manifesto – “Individuals and interactions over processes and tools”. Does is mean – don’t bother with tools and processes? Is it feasible in today’s fast passed, complex world? It is like the statement from John Zachman – You can run an enterprise with pencils, paper and file cabinets – reality in the past; unthinkable today.

Similarly, have a look at the 5th principle – “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.” Does it mean – don’t bother with process? If there are multiple agile projects going on in an organization then can each team chose to follow a different agile methodology?

For that matter, 4th and 6th principles state – “Business people and developers must work together daily throughout the project” and “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation”. This will mean physically collocating business people and developers. In the current globalized and virtually networked world, I wonder how this is feasible.

What we need to do is to take a couple of step backward and try to extract the essence and formulate clear yardsticks which can be used to qualify any methodology and agile or non-agile. I suspect that most of us know intuitively what those yardsticks are but it will still be good to have it in black and white.

Essence of Agile – 2 dimension

Before we can formulate the yardsticks let us understand the spirit behind the manifesto.

Change is inevitable because …

  • …software cannot be unambiguously and completely specified through a document or a model
  • …people don’t know and cannot completely visualize what the software should be till they play with it
  • …communication is never perfect and correction through feedback loop is essential
  • …environment around us is never static and useful software needs to evolve to match the revised requirement

Thus, any methodology to qualify as an agile methodology needs to have specific recommendation on “how to effectively manage short iterations”. As a corollary, any methodology which tries to lay down standards on how to “unambiguously and completely” specify different aspects of the software cannot be considered as agile.

Individuals create software and better software is produced …

  • …by motivated individuals
  • …through regular interaction among individuals
  • …when individuals working together figure out how to be more effective
  • …where the environment has minimum roadblocks and illogical restrictions

Therefore, “how to help individuals to work together” is the second dimension that an agile methodology needs to address.

Yardstick of evaluation – 2 positive and 1 negative questions to ask

(+ve) What recommendations does the methodology provide …

  1. …for managing short iterations: Obviously any methodology which does not recommend iterative development gets immediately disqualified.
  2. to help create a self-motivated team: Recommendations need to be specific and actionable and not philosophic statements.

(-ve) Is there any mandate that makes it necessary to produce a document or a model which is expected to be a complete and unambiguous representation of a specific dimension of the software?

Related Posts


Comments
12 Responses to “What makes Agile agile”
  1. okabc says:

    “Inclusion of e-Mentors for Agile with Scrum” can be a research area for PhD in Computer Science & Engineering?
    or
    “Agile transition for medium/large scale projects”
    or any other suggestion?

  2. okabc says:

    Is agile practices in software development more appropriate?

  3. okabc says:

    I have a query.
    Is agile documentation enough for software support?

    In case Rational tools are not used, tools like Visio is used for process flow, then how is

    documentation done?

    consistency checked?

    reverse engineering done after shareholders’ feedback ?

    • Udayan Banerjee says:

      None of the Agile process specify any documentation standard. So, you are free to choose whatever is needed for future software support. However, making the code understandable with proper structure and comment is a very good idea.

  4. Agile Scout says:

    Good points here. Sometimes it’s best to start by understanding what “Agile” isn’t first:
    http://agilescout.com/agile-is-not-a-methodology/

Trackbacks
Check out what others are saying...
  1. […] What Makes Agile agile? Share this:LinkedInTwitterFacebookStumbleUponPinterestEmailLike this:LikeBe the first to like this. […]

  2. […] There 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 it difficult to adhere to some of the points mentioned in the Agile Manifesto but do keep in mind the 3 important elements which makes Agile agile: […]

  3. […] essence of agile is iterative development and self-organizing team (What makes Agile agile?). Latest research suggests that iterative approach with trial and error is the best way to navigate […]

  4. […] I am in a state of shock. [Update: Have a look at What makes Agile agile?] […]



Leave a comment