What’s the difference between iteration and oscillation? This is important distinction for an OUM practitioner to be able to articulate – that while OUM is indeed an iterative method; it does not mean you are endlessly oscillating on the same tasks like a washing machine stuck on the rinse cycle. Since properly applying iterative development principles is vital to an OUM practitioner’s success, this blog explains why, in OUM, iteration doesn’t equate to oscillation.
WHAT IT MEANS TO BE ITERATIVE: Let’s first understand iterations. In OUM (or any other iterative approach), you divide each phase into periods of time, usually from 2 to 6 weeks (some prefer 2~4 weeks), called iterations. During each of these periods, the team executes tasks in order to achieve the iteration's goal(s). Therefore, the term, "iterative" means that work on an OUM project is divided into a series of "iterations" that are essentially run as mini-projects.
ARE WE THERE YET? Now we have a solid understanding of iterations, but it still doesn’t completely explain why the project team isn’t oscillating into eternity. The key here is that “iterative development” also includes the concept of growing the system incrementally.
WHAT IT MEANS TO BE INCREMENTAL: Turning our attention to incremental, this means that the system is developed in chunks, iteration by iteration. Each iteration results in an increment, which is a release of the system that contains added or improved functionality compared with the previous release. At the end of an iteration, the resulting increment of functionality is presented to users and requirements are re-evaluated so as to plan the next iteration.
PUTTING IT ALL TOGETHER: Putting this all together, “iterative development” in OUM means that the system is developed through a series of mini-projects (iterative), and in smaller portions at a time (incremental), allowing the project team to take advantage of what was learned during earlier development, and incorporate feedback from project stakeholders. As the project progresses, the emphasis given to a particular task shifts from phase to phase so that the appropriate phase milestones are met, and ultimately the project’s overall goals are achieved.ARE WE THERE YET (AGAIN)? You can see that an OUM project team will be working in iterations, growing the software increment by increment, and finally achieving a stable solution that real end-users can employ. This is much different than being caught in an endless re-run of the movie “Groundhog Day”, forever oscillating on the same tasks; achieving nothing. Now that you’ve read this blog entry, I’d love to hear your thoughts on the differences between iteration and oscillation.