By Paul Rakowicz, Vice President of Software Development
Continuing with the Agile thread of my previous two posts, today let’s look at what it means to be “iterative” in your thinking.
First off, the definition of “iteration” is:
1: the action or a process of iterating or repeating: as
a: a procedure in which repetition of a sequence of operations yields results successively closer to a desired result[i]
So, “being iterative” is simply practicing the art of iteration.
As you look at this definition, take special note of the concept related to “yields results successively closer to a desired result.” For this concept brings us to the idea of “incremental.” These two ideas are closely intertwined in Agile.
The definition of “incremental” is:
1: of, relating to, being, or occurring in especially small increments: e.g.
a: incremental additions, incremental change[ii]
So “being iterative” means that you make your way through work by repeatedly processing a limited number of steps, with each successive pass bringing you closer to your end goal.
Let’s consider an example of “being iterative.” In this case, let’s use this very blog post.
In conceiving this blog — using iterative thinking — I started by first making a high-level pass through a clear set of steps.
- I jotted down a general outline of my blog, leaving the detail for later.
- I thought through the flow of the outline to ensure that it made sense and shared the information I thought important.
- I cleaned up the wording of each of the headers within the outline so my vocabulary for the blog matched my subject matter.
This was my first pass, which produced my first increment for my finished product.
My next step — still being iterative — was to make a second pass that this time included a bit more detail. Therefore,
- I added a sentence or two under each heading to provide a bit more detail for what I might say under each.
- I thought through the flow of each individual section and the flow from section to section to ensure that they all made sense both individually and together and shared the information I thought important.
- I cleaned up the wording of each section so my vocabulary for the blog continued to express my subject matter.
This was my second pass, which produced my second increment for my finished product.
To make a longer story just a bit shorter, because I think you get the idea here, through additional iterations I then finally:
- Completed the full detail related to each section of my blog.
- I confirmed the flow of my thoughts in each section and the flow from section to section.
- I performed final edits on each section and the connecting language from section to section to ensure clarity in the message.
This was then the final pass — which produced the finished product.
Now, while one might think this a rather simple example of “being iterative,” truth be told — Agile is all about keeping it simple. “Being iterative” and understanding “incremental” are two means by which simplicity is achieved.
Consider spending some time on your own thinking about other examples where “being iterative” is of great benefit in your everyday life. When you do, I suspect you’ll find that approaching pretty much everything with the mindset of “being iterative” is helpful. Even natural.
When you start to consciously apply “being iterative,” you’ll be on your way to understanding one of the key components of the Agile philosophy.
Next time, we’ll take a look at how “being iterative” is the cornerstone for successfully applying several of the first of the 12 principles behind the Agile Manifesto. Till then, you can learn more about how Lowry Solutions implements the Agile philosophy, and is itself constantly striving toward “being iterative,” in our whitepaper Discovering the Lowry DSDM Implementation Methodology.
[i] “Iteration.” Merriam-Webster, Merriam-Webster, http://www.merriam-webster.com/dictionary/iteration.
[ii] “Incremental.” Merriam-Webster, Merriam-Webster, http://www.merriam-webster.com/dictionary/incremental.