Pages

Saturday, March 07, 2020

Why and When To Go For Agile Life Cycle



Projects, like human beings, are living entities. Just as every human being goes through a life cycle, so does a project. To understand life cycles, let’s break down a real-life example. Every day, you wake up from your bed, do your morning chores, have your breakfast, do your work, come back home in the evening, give some time to yourself, and then retire again to bed. Would you say these activities constitute a life cycle?

Think about it for a moment.

Did you think that your daily activities formed a life cycle? I guess not. It is not a life cycle because you are waking up the next day to do those same activities again, aren’t you? I hope so. I don’t expect to leave the world tomorrow, and I don’t think you do that either, so, our daily activities, in fact, constitute our daily routines rather than a life cycle.

What is a life cycle then?

Your human life cycle began when you were born into the world. You’ve passed through or will pass through many phases—infancy, adolescence, young adulthood, old age, retirement. Every one of us will have to leave the world one day, too. Your life cycle spans a timeline from you being born into the world and finally leaving the world. Similarly, the life cycle of a project spans from the time it is born into an organization and created until it is finally been finished or closed.

Why are life cycles so important? I’d like to suggest the importance is because a life cycle determines what things you do in your life and how you do them. Let’s say you had a good childhood, you received care in your upbringing, and hence, you grew well in later stages. With a good beginning, as you aged, you were able to contribute back to society in a positive way. Similarly, a project’s life cycle selection and correspondingly the development approach impacts how the project is going to be executed, led, managed, and finished. Life cycle dictates how a schedule will be managed, how cost will be estimated, how budget will be determined, how requirement changes will be addressed, and how various stakeholders will be engaged, etc. If all of this is determined and executed correctly, then the output of the project—product, service, or result—is expected to be a good one.

Various Life Cycles
PMI’s PMBOK® guide 6th edition documents that a project life cycle is a series of phases from its start to completion. The project life cycles can be predictive or adaptive. However, within a project, there can be one or many phases of development. These constitute the project’s life cycle, as depicted in the figure below.




Development life cycles can be of many types:
  • Predictive Life Cycle
  • Iterative Life Cycle
  • Incremental Life Cycle
  • Adaptive Life Cycle
  • Hybrid Life Cycle

Understanding life cycles and selection of life cycle are important concepts while preparing for the Project Management Institute® Project Management Professional (PMP)® or Agile Certified Practitioner (PMI-ACP)® examinations. If you are a project manager, you also know that every project is unique, and you want to implement a good understanding of the various types of life cycles when tailoring a project’s development according to your need. This is where life cycle selection plays a crucial role.

Predictive Life Cycle
This life cycle is also known as “Plan Driven,” “Fully Plan Driven,” or as the “Waterfall Model.” The later term has been used in the last century mostly to refer to software development. The scope is known early in the life cycle, and you know exactly what the time needed and cost requirements are to deliver. In summary, this life cycle is used when the product to be delivered is well understood.

In many projects; however, requirements and scope are rarely known in detail before the project begins. As details and finalized scope is not known in advance, you can’t have the time and cost known in detail either. And so, this leads to another life cycle—the iterative life cycle.

Iterative Life Cycle
Here, you deliver in iterations by progressively refining the product every step of the way. The concept of progressive elaboration fits in here. Progressive elaboration is basically an iterative process of increasing the level of detail as greater amounts of information becomes available.

Both the product containing unclear requirements and the plan having unclear estimates are progressively elaborated. The product is developed over a series of iterations. The detailed scope for the current iteration is only known at the beginning of the iteration. You incorporate the feedback from previous iterations into the subsequent iterations.

Incremental Life Cycle
In some projects, there can be complexities with respect to technology or the platform being used. Now, this is different from low agreement or lack of clarity on requirements. This is the case where the customer is wanting the deliverables quickly.

Also, many times, it’s not important how well-refined your product is or how beautifully it’s done. Rather, the focus is on speed of delivery. In such cases, you can use the incremental life cycle.  Here, the delivery that you give to the customer can be immediately used and/or the product increment is potentially shippable.

Adaptive Life Cycle
Our next cycle to explore is the adaptive life cycle. It is also known as the Agile life cycle. Agile development is both iterative and incremental (or I&I).

Many confuse iterative development with incremental development. They are not same.



Incremental development and delivery means that a product is developed in small chunks—not all at once. This is shown on the left side of the above diagram. Here, we take the highest priority features, as prioritized by the customer, first and foremost. When the highest priority features are delivered, the customer get the highest value features first. In incremental development, all features that you develop, should be fully complete or done.

Iterative development, on the other hand, means we deliver in iterations. We deliver a skeleton product or a prototype first. The next delivery is based on the feedback from the previous iteration(s). Then, with successive releases of the product (a release being a set of iterations), the product is refined further.

Remember, an Agile life cycle is both iterative and incremental?

In Agile life cycles, products are developed in iterations, a series of them. Each iteration also incrementally builds the product, and at the end of iteration, a deliverable or a set of deliverables is completed, as shown below.




To understand these life cycles, we will take a look at a popular diagram used by Agile practitioners, Stacey’s Diagram.

Stacey’s Diagram
On the Y-axis, we have the agreement (typically on requirements) and on X-axis, we have uncertainty (typically on technology or platform). You can also say the Y-axis is about “what to do,” whereas the X-axis is about is “how to do it.”


For simple projects, shown on the lower left side of the above figure, you know exactly what to do and how to do the work. Those simple items are rarities in software development and may not show up at all, other than perhaps in maintenance projects. If a disagreement on requirements comes up, you can use the iterative cycle, or if the technology complexity increases, you can use incremental cycle. These are items which are shown as “complicated” above.

At a high level of requirement complexity and a high level of technological complexity, the Agile life cycle is best. In other words, in “complex” projects, as shown in the above diagram, we take an Agile approach. Here, the iterations are very rapid and usually completed in a 2 to 4 week time period. Since it is also incremental, you get successively added functionalities. The adaptive approach is implemented in a rapidly changing environment, when requirements and scope are difficult to define in advance. At the end of each short and time-boxed iteration, there is a retrospective session or feedback meeting. Information collected from this session is incorporated into subsequent iterations.

We can also put it in another way, as shown below:



When you have high agreement on requirements or low churn in requirements and low uncertainties, you go for predictive mode. However, if the requirement churn is high (for example, there is a high degree of change) or the clarity on the requirement is not there, the project will be running in an iterative mode. For finished work that your customer may want to use immediately (such as high frequency deliveries), apply an incremental approach. Finally, go for Agile, when you iterate many times and are creating deliverables at the end of every iteration.

Advantages of Agile
The Agile approach has many advantages over traditional or fully plan driven approaches.
  • Since the iterations are short and time-boxed, the team stays focused on the current iteration and delivery.
  • The highest priority features are taken into consideration. Hence, the customer immediately gets value on them instead waiting for a longer time.
  • High uncertainties mean high risks. The biggest risk a project can have is failure to deliver anything, or delivering something that was not originally intended. You cut down on these risks by delivering, not only early, but frequently.
  • The customer gets an incremental version of the product at the end of every iteration. Hence, value is produced often, not just early.
  • As the delivery happens rapidly, so also is feedback gathered. The issues, problems, new features, and/or emerging features can be incorporated into subsequent iterations.

I hope you’ve enjoyed this in-depth analysis into the various life cycle’s available within project management. As you can see, it is important to choose the correct one or the correct combination as it relates to the needs of your customer. More often than not, for complex projects, a flexible Agile approach, is the best.

References:
[1] I Want To Be An ACP: The Plain and Simple Way To Be A PMI-ACP, by Satya Narayan Dash
[2] Project Management Body of Knowledge (PMBOK) Guide, 6th Edition by Project Management Institute (PMI)
[3] Agile Practice Guide, by Project Management Institute (PMI)
[4] Agile Project Management with Scrum, by Ken Schwaber
[5] I Want To Be A PMP: The Plain and Simple Way To Be A PMP, by Satya Narayan Dash

This article was first published by MPUG on 17th April, 2018.



You May Also Like:

Other Agile Artcicles:


No comments:

Post a Comment

Sign- or Log-in and put your name while asking queries in comments. Any comment is welcome - comments, review or criticism. But off-topic, abusive, defamatory comments will be moderated or may be removed.