I saw this interesting thread in a LinkedIn discussion group for Agile and Lean Software Development, that questions the the common perception of Agile being an iterative method and process. I'm guilty of this myself as I often talk about Agile methods in those terms, but as the post indicates, there's nothing inherent in the original Agile Manifesto that promotes having to do iterations:
The vast majority of people assume that Agile = Scrum = Iterations but the agile manifesto doesn't say anything about iterations or Scrum. What it does talk about is early and continuous delivery of value which could be achieved in other ways such as multiple overlapping iterations or continous flows.So are iterations really essential for agile? Are continuous flows of value a better way? Have you done agile without iterations? If so how did you go?
It really was Scrum that advocated using interations (or what they call "Sprints") and since it is the most popular of the Agile methods, those in the community often equate Agile with iterating.
For me personally as a practicing project manager, I'm naturally more inclined to align myself with Scrum's notion of iterations and delivering a "potentially shippable" product at the end of each iteration since it will give a clear delineation of when a project is done.
Having a process based on continuous improving flows seems more like developing operational efficiencies rather than delivering a project that can adapt better to changes in a highly uncertain environment. That is not to say that a project's process could not benefit from continuously improving flows. That's why things like incorporating Kanban is highly beneficial to moving task flows.
It's just my preference to have something like Scrum be the driving force for my projects and to incorporate things like Lean and Kanban process improvement flows where needed.
What's your take on this?



