All projects across industries follow a life cycle approach. Often I have seen there are so many questions in mind for many PMP® Certification aspirants on different types of life cycles. Why do we need anything other than a predictive life cycle, which goes quite sequential and looks perfect? What are these buzz words, i.e., iterative & adaptive? What these new life cycles do differently? Let’s clarify all these doubts in this blog and be ready to answer all the questions revolving around it.
First of all, we shall look at what is a Predictive Life Cycle according to the PMBOK® Guide:
Predictive Life Cycle: A form of project life cycle in which the project scope, time, and cost are determined in the initial phases of the life cycle.
In summary, in this life cycle, we can predict the full flow of work. We can predict the final product, and we know how we have to work to deliver the right product.
In this way, we can follow a sequence of work like:
We start with requirement analysis and then move to the design of the product. And after getting the approval of the design we move to the development and finally, after testing, we deliver the product to the customer.
Here in this life cycle, each phase focus on one type of work. And at the end of the last phase, we deliver the final product to the customer.
You can see we are sequencing phases of work. And, If we need any feedback, it comes from the successor phase to the previous one. Like Requirement Analysis gets feedback from the design phase.
In this predictive life cycle, expected changes are minimal because work is quite predictive and known. We can say the life cycle is quite foretelling like technology is proven; the team is matured in estimation techniques. Etc.
In other words, the team knows where they are heading? And what they need to follow the sequence. It is a plan-driven life cycle, where we plan work upfront, and we make changes as an exception. It’s like a yearlong project will have Planning, Analysis, Design, Code, testing phases one by one and then the final result is delivered over a year.
We don’t expect the long feedback cycle where testing is giving feedback to requirement analysis. If it happens, this life cycle is not right for us. This long feedbacks introduces a lot of waste as we need to lot of rework in requirement analysis, design, and development also. When we are developing some new recipes, this long feedback is common, and we should avoid the predictive life cycle. Here, we can see in this new recipe, as things are not predictable, and we need a different approach. Now the question is, which life cycle is suitable when requirements are abstract? The answer is the iterative life cycle. We will discuss this life cycle later in this blog.
Now we are clear how this most common life cycle work. Let’s go to the next step. What is an iterative life cycle?
Based on PMBOK® Guide:
“Iterative Life Cycle: A project life cycle where the project scope is generally determined early in the project life cycle, but time and cost estimates are routinely modiﬁed as the project team’s understanding of the product increases. Iterations develop the product through a series of repeated cycles, while increments successively add to the functionality of that product”
This life cycle believes in creating multiple learning opportunities. So, here, the goal is to take frequent feedbacks before reaching the final product. This feedback helps the team to learn about the customer’s and other stakeholder’s expectations. This life cycle understands that requirements are abstract. And, real feedback comes when the customer and other stakeholders can see some deliverable or part of the product.
In summary, this life cycle says –
We cannot create a complete product using the approved requirements only; we need to show and take feedbacks frequently. We need to learn continually and refine the product base on these learnings.
It is an example of repeatedly development and refinement and makes this life cycle iterative. We move to the final product after continuous refinements or iterations. And, as a result of feedback, we are open to the changes to any developed part of the product. Changes are not an exception here. these are welcome in iterative development.
We move to the next iteration after adapting the backlog based on learnings that come from the feedbacks.
We deliver a result at the end of each iteration; we don’t wait to provide a complete result or product at the end of the project. We develop and refine iteratively and demo it to get learning opportunities. In this way, this process helps in delivering the right product.
Like a yearlong project will have three months iterations. And, each iteration will execute Planning, Analysis, Design, Code, testing phases, and deliver the result at the end of the iteration. This delivered result may not be usable, but it is shown to give a feel for the final product. This feeling encourages a discussion of a product that will really solve the problem.
This discussion generates feedback and Based on this feedbacks; the backlog is adapted. This creates a refined product using further iterations.
Now, the question is – when do we need this iterative development?
We need it when requirements are abstract. And, we are not confident what exactly customer requirements are? We need this life cycle where changes in the scope need to be managed. To manage the scope, as we move based on continuous learning, changes in this life cycle are naturally implemented in upcoming iterations rather than an exception.
With this life cycle, project phases proceed through sequential or overlapping mode in every iteration. And, the end result is delivered at the end of each iteration.
So, if we are doing something new and we need to see where we are moving and how this product is going to look and how will it solve –
We allow using that half-cook product before investing further.
Now come to the incremental life cycle:
“Incremental Life Cycle: An adaptive project life cycle in which the deliverable is produced through a series of iterations that successively add functionality within a predetermined time span. The deliverable contains the necessary & sufﬁcient capability to be considered complete only after the ﬁnal iteration.”
In simple words, it is like we need to develop ten things, we develop them one by one instead of picking all in one go. This life cycle delivers features incrementally, and whatever we develop, it is usable and consumable.
Ok, we now understand these three bits, i.e. Predictive, Iterative and incremental. This is pretty much everything one can do, then what this adaptive life cycle is?
Based on PMBOK® Guide:
Adaptive Life Cycle: The project life cycle that is iterative and incremental.
It means this life cycle is a mix of iterative and incremental development. We add features incrementally, but they can be changed based on received feedback.
Using this life cycle, whatever is we deliver–
It is usable like incremental, but we are open for feedbacks and refinements based on those feedbacks. These refinements can be done either in iterations or we can follow a kanban or lean based approach.
For more details, on how incremental and iterative development goes together in Agile, or what does iterative mean in agile?
If you have a question about an example of an adaptive strategy?
Then we can see, an adaptive life cycle is a change-driven. It is an Agile way of doing things as it is intended to the high level of changes. It needs on-going stakeholder’s involvement. Here iterations are very rapid usually with a duration of 2 to 4 weeks and are ﬁxed in time and cost.
This life cycle is used for projects where rapid changes are expected and scope is not possible to define upfront. So, change during the project is naturally handled in rapid iterations.
Also, the end result is delivered at the end of each 2-4 week iteration.
Like, a yearlong project will have multiple 2-4 week iteration and each iteration will execute Planning, Analysis, Design, Code, testing phases and deliver the result at the end of the iteration.
Here is the comparative analysis between predictive, iterative, and adaptive:
Let’s quickly recap the similarities and differences of all these three types of life cycles
|Stages/ Phases||Can happen sequentially or overlap||Can happen sequentially or overlap||Can happen sequentially or overlap|
|Stages/Phases||Planning/ Analysis/ Design / Code/ testing all takes place||Planning/ Analysis/ Design/ Code/ testing all takes place||Planning/ Analysis/ Design/ Code/ testing all takes place|
|Scope||Defined upfront at the beginning||Defined for upcoming iteration and high-level vision for the rest||The scope is set in the form of features from which features are picked for the current iteration|
|Change||At initial phases/stages can be accommodated. Cost overruns as late it comes up during project Lifecycle||Taken care with less cost impact during the planning of the next iteration||Taken care even more rapid changes every 2-4 weeks with less cost impact during the planning of the next iteration|
|Risk||The risk of change/ feedback is huge at later stages/ phases||The risk of change/ feedback is less as iterations reduce it naturally||The risk of change/ feedback is least as iterations are too small and reduce it naturally|
|Customer Feedback||Customer feedback is received at the end of the project only and customer involvement is more at the beginning and end||Customer feedback is received at the end of each iteration with which customers are involved multiple times during the project||Customer feedback is received at the end of each rapid iteration. Customers are involved/engaged continuously|
|Complexity||Used for projects where the product to be delivered is well understood and complexities are not there to handle||Used where a change in objectives/ scope need to be managed and complexity reduction is required as the project progresses||Used in a rapidly changing environment, where scope/ requirements are difficult to define in advance and possible to define small increments|
|Delivery/Value||Delivery happens at the end only once and the customer gets value at the end||Delivery happens at the end of each iteration and customer gets value early in the project||Delivery happens very rapidly after every 2-4 weeks and customer get the value delivered very frequently|
This is how the world is moving, especially in the software industry. The transition is happening from predictive to iterative to adapt ve I .e.an agile way of working. PMBOK® Guide also included flavors of Agile in it in the form of the adaptive life cycle. The ever-changing needs of customers and the inability to foresee the market and predict the behavior are the key driver to make this transition.
You can watch and listen to the live video presentation on predictive, iterative and adaptive life cycles here:
Enroll to our FREE PMP® Certification Introductory Program to learn more about PMP® certification