By Paul Rakowicz, Vice President of Software Development
In our last blog we discussed what it means to think iteratively. Today let’s consider the application of iterative thinking to the first principle behind the Agile Manifesto. Remember, the first principle is:
Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.
Built into this very first principle of the Agile Manifesto is the notion of iterative thinking. The very concept of “early and continuous delivery” is based in the philosophy of being iterative.
While it seems like a simple concept, it was truly a ground-breaking one in the world of software development.
Until the advent of Agile, there was Waterfall. We covered this in our first blog of this series. And Waterfall is the opposite of “early and continuous delivery” — for it requires long work and detailed specifications before coding even starts. By its very definition, it results in a “big bang” approach for software delivery. That is, it implies that a perfectly working piece of software will be delivered without any prototypes, hiccups, or even feedback.
Unwinding this Waterfall mentality was a major task, and it remains so today in many organizations.
But understanding what it means to be iterative is the best means for overcoming any resistance to the Agile methodology.
Think about how this might work in relation to the first principle behind the Agile Manifesto. Imagine a scenario where a customer asks a software development team for a new software project to resolve a certain business problem.
Instead of, as in the old days, boring the customer with countless hours of questions and minutely detailed written specifications, the software team simply builds a quick prototype and asks the business owners if it’s what they were thinking of. Immediately a feedback loop begins. As it proceeds, the requestor will find themselves gaining deeper knowledge related to their request and its implications.
So, with this first iteration done and the feedback loop opened up, the business owners then, thinking through the prototype, refine their request as they consider its real-world implications. They can enjoy the next prototype and the relatively quick feedback they’re receiving from the software developers.
As this prototyping process continues — usually involving anywhere from two to five cycles of development and feedback — a real understanding of the first phase of the project comes into view. This solidifies the business value of the request.
This is the practical application of the first principle of the Agile manifesto. These prototypes are the “valuable software” that the first principle is talking about. They play a major role in the new age of requirements gathering.
After this very iterative process, next the software group would iteratively build out the code needed behind the prototype to bring it into production. The business customer, having participated all along through the prototyping process, will easily test and approve the system, and all parties will have benefited from applying iterative thinking to the first principle of the Agile Manifesto.
You can think through applying the concept of being iterative to the rest of the principles in the Agile Manifesto as well. In fact, that should be your homework assignment from this blog. We’ll pick up with more information in our next one.
In the meantime, contact us if you have any questions. You can learn more about Lowry Solutions’ implementation of the Agile philosophy and our application of iterative thinking in the whitepaper Discovering the Lowry DSDM Implementation Methodology.