A few years ago I taught a class on Iterative Development. I taught it just once. I’m an Agile Expert, but not an Iterative Development expert so I read a book on Iterative Development and taught the class. I came away from that still confused about any difference between the two. Yes, Iterative had more weight/waste still in the process, but sometimes more of that is necessary if you’re in an industry that requires that. That doesn’t mean you can’t be Agile, it just means that you need to account for that in the process.
Recently I’ve been updating our PMI-ACP Certification Bootcamp to include the new material from the Agile Practice Guide that PMI has just published and will include as part of the exam starting in March. In that guide it makes it clear what the difference is between Iterative and Agile. I’ve recreated a chart here that illustrates what it teaches:
Agile is Iterative and Incremental, not just Iterative. What does that mean? In an Iterative approach, you do time boxing – the Iteration – but you don’t expect to have incremental working software in each Iteration. From an Agile perspective that is dysfunctional. If we are not producing new working software in each Iteration, we are, simply said, not Agile. If not, how are you measuring success? You’re not following the 7th Agile principle that our primary measure of progress is Working Software.
In an Iterative only approach, every iteration produces work products that eventually should translate into something of value, hopefully. In an Agile approach, you have basically failed within the Iteration, if you have not produced Value.