pioneering outsourcing 2.0
01 2008

Iterative and Incremental is not equal to Agile : Key Aspects of Agile

Agile is an iterative and incremental development process. However, the fact that you are doing iterative and incremental software development, does not necessarily mean you are doing Agile. It is often useful to see the relationship between iterative and incremental development [IID] and Agile through a venn diagram. A common fallacy is to see the relationship as below:

IID and Agile Relationship

This is not entirely correct. Considering any iterative and incremental development process as Agile is misplaced. Agile is an iterative and incremental development framework but there is more to Agile that just iterative and incremental development. A brief overview of Agile has been presented in the Agile Manifesto. Doing iterative and incremental development does make you more responsive to change, increase customer collaboration and even deliver working software at the end of iteration. However, it is possible to do iterative and incremental in a manner that is anti-Agile. To achieve agility in your development process, in addition to an iterative and incremental development you would need:

  • Agile conforms process to people and stresses on a self organizing team. This is perhaps the most important distinction. Agile does not view people as “resources” or “nuts and bolts” or “puts process on top of individuals”. A self organizing team would choose the process it needs based on experience and current situation. This is possible only by creating a culture of decision making, team collaboration, customer collaboration, continuous training and learning. An iterative and incremental development process ridden with ceremony and processes is anti-Agile.
  • Agile stresses on collaboration. Tools are there to help you achieve a goal and are not a goal in themselves. A self organizing team could choose to only use notepad while another could choose a million dollar IDE. However, the teams would be collaborating towards a common goal at the end of iteration and not individual targets or productivity. In addition, Agile stresses on customer collaboration beyond just doing iterative and incremental development.
  • Agile is adaptive and emergent. The fact that you had a nice plan upfront on what each of the increments would be and exactly how iterations would work, and the project was run exactly like that, is not Agile. This could be possible in some projects [shorter duration, one which you have done many times], but in most projects this is a clear indication that Agility has taken a hit [either of the customer collaboration or product owner feedback loop would be weak]. Ideally, you would want the project to adapt based on emerging requirements rather than stick to an iterative and incremental plan.
  • Finally, Agile is about useful working software. At the end of an iteration, working software has to be provided. It is useful to consider Scrum notion of “potentially shippable code”.

As can be seen all the four aspects above aid each other. For instance, the fact that you focus on useful working software makes the project adaptive to emergent requirements which is possible only in an environment of customer collaboration. A self organizing team would be in a better position to provide useful working software quicker and better through better internal team and customer collaboration.

Hence, a better relation between IID and Agile would be as below:

IID + [Agile Values and Principles] = Agile

Also, a better Venn Diagram representation of IID and Agile would be as follows:

Better Venn Diagram to represent IID and Agile

Popularity: 32%

Share:
  • Digg
  • del.icio.us
  • Furl
  • Reddit
  • StumbleUpon
  • Technorati
  • YahooMyWeb

One Response to “Iterative and Incremental is not equal to Agile : Key Aspects of Agile”

  1. […] and working with it, reveals all flaws, both in terms of bugs and misunderstood requirements.  Agile, an iterative and incremental process is adaptive in nature and totally able to deal with changes in required features.  So, long term […]

Leave a Reply

You must be logged in to post a comment.