Waterfall doesn’t work. Scrum makes execs uneasy. Don’t despair! We have a better alternative.
By Vivian Aschwanden, Director of Program Management at Precision Content
We’ve all faced this dilemma at some point on our development projects: The management team for your project wants to see pre-determined schedules, hard deadlines, and guaranteed deliveries. But then they also want you to quickly pivot on mid-stream requirements changes, without changing planned commitments. You know that Waterfall doesn’t work, and that Scrum hasn’t satisfied execs and managers who want to see detailed plans.
Rock, meet Hard Place.
If this scenario is familiar to you, we have a solution that will allow you to still embrace proven agile values and principles, while satisfying the need to produce robust and trackable plans.
Modern development teams often organize and run their projects using Agile principles and Scrum framework, but client expectations do not fit with these. Clients have
- date-driven deadlines
- a desire for certainty
- a reluctance to define and accept MVP and instead desire the whole shebang
- a tendency to change their minds mid-project as they start to understand the necessary work and see project outputs, and
- exec/management requirements to see progress made against a long-term delivery schedule with specific milestones.
In many cases, contracts are fixed-firm, listing specific and complete deliverables, with hard delivery goals. A Scrum framework does not fit well with this type of contract.
After five years of project plan experimentation and applying Scrum methods and Agile principles to our projects, it’s now time to embrace a different approach to better fit the reality of deadline-motivated and deliverable-driven projects. The answer? Iterative and Incremental Development (IID) methodology. This planning method still embraces the same agile values and principles we know and love, but is more structured and proven to deliver more predictable results. Used across industries on major development projects for many decades (most notably starting in the 50’s, but with roots as far back as the 30’s), and the underlying basis on which the Agile Alliance was first formed, the Iterative and Increment Development methodology
- is built around achievable milestones
- better engages resources every step of the way
- provides earlier and more frequent deliveries, giving the development team more opportunities to give user feedback, perform user testing, and accept delivered functionality, and
- remains flexible and can absorb changing requirements while still driving towards a larger set of goals and deliveries.
How does IID work?
As the name suggests, the Iterative and Incremental Development methodology contains both iterations and increments.
- In each increment, a slice or chunk of completed functionality is delivered through cross-team/multidisciplinary work. The goals is to build and deliver in incremental pieces until the whole project is complete. By the end of an increment, several rounds of user feedback and adjustments will be completed. The delivered subset of functionality at the end of an increment is deemed complete and will not require later revision.
- An iteration is time-boxed, like a sprint, but typically longer. They are numbered and can vary in length. The full team contributes to each iteration delivery; no department waits until a later iteration to contribute. Each iteration involves the following sequence of activity, which repeats in every iteration: Planning > Designing or Implementing > Testing > Evaluating. The result is a mini project delivered for each iteration. Progress is made through successive refinement.
What does an IID plan look like?
The Iterative and Incremental planning approach is layered, with a high-level plan for management teams and stakeholders, and low-level, detailed plans for development teams:
- Implementation Plan – focused on release dates and milestones (increment milestones and other key milestones). Aka “Project Roadmap”.
- Iteration Plan – used to measure progress and to plan daily work. One exists for each iteration.
This graphic has been adapted from Example Implementation Plan from “An iterative and incremental approach to planning ERP projects” by Lauren Clark: https://www.pmi.org/learning/library/erp-oracle-unified-method-approach-5990
What are the expected results?
Through iterative and incremental processes, projects are delivered through a series of mini-projects and in smaller portions at a time. The project team can thereby learn from earlier iterations and incorporate feedback frequently from reviewers & test teams. By following an Iterative and Incremental Development approach, you can anticipate great improvements within the project lifecycle, including
- improved planning and reporting, resulting in a clearer, holistic, milestone-driven project picture up front, without resorting to waterfall planning approaches
- improved quality through feedback-test-acceptance loops over the course of the project
- more synergy as everyone is engaged from the start and contributing to decisions made over the course of the project
- agility to pivot and respond to discovered requirements and unknowns during the project, and
- more predictable project closeout dates.
Stay tuned for tips and lessons learned as we roll-out an Iterative and Incremental Development approach starting in 2021.
Want to learn more?
The content from these websites helped to inform this blog. You can learn more about Iterative and Incremental Development by visiting them for more details:
- Craiglarman.com: https://www.craiglarman.com/wiki/downloads/misc/history-of-iterative-larman-and-basili-ieee-computer.pdf (article “Iterative and Incremental Development: A Brief History” by Craig Larman and Victor R. Basili)
- Informit.com: https://www.informit.com/articles/article.aspx?p=102256&seqNum=3 (chapter from “Agile and Iterative Development: A Manager’s Guide, By Craig Larman”)
- Pmi.org: https://www.pmi.org/learning/library/erp-oracle-unified-method-approach-5990 (conference paper “An iterative and incremental approach to planning ERP projects” by Lauren Clark)
- Pmac-agpc.ca: https://www.pmac-agpc.ca/ideal-iteration-length-revealed (article “The Ideal Iteration Length Revealed” by Kevin Aguanno)
- Wikipedia.org: https://en.wikipedia.org/wiki/Iterative_and_incremental_development (encyclopedia entry “Iterative and incremental development”)
- Digite.com: https://www.digite.com/agile/iterative-and-incremental-development/ (blog “Iterative and Incremental Development: Refuse to Choose”)
- Backlog.com: https://backlog.com/blog/importance-iterative-incremental-software-development/ (blog “The importance of being iterative and incremental in software development”)
- Scrum.org: https://www.scrum.org/resources/blog/iterative-not-necessarily-incremental (blog “Iterative is not Necessarily Incremental” by Thomas Schissler)
About the author
Vivian Aschwanden loves looking for “the better way”. Having started her career as a technical writer and information developer, she began managing software teams and client projects in 2009. Now she directs the Program Management Office at Precision Content. You can find her working from her log home in Algoma Mills, Ontario.Tweet