Wednesday, March 6, 2019

Project - Incremental v/s Iterative life cycle

Incremental Life Cycle

The Incremental life cycle was originally posed as a way to get products and services to market sooner but with what has been labeled “crippled solutions.” That is a solution that is not fully functional. It is designed to enable your client to gain a foothold in a new market or enhance their leverage in an existing market.

The increments follow sequentially, not concurrently.


Note that the sequence formed by the Launching, Monitoring and Controlling, and Closing Process Groups is repeated n times. Each repetition integrates another part of the solution until the nth repetition, when the final part of the solution is integrated and the project moves to the Closing Process Group.

Definition:
An Incremental life cycle consists of a number of dependent increments that are completed in a prescribed sequence. Each increment includes a Launching, Monitoring and Controlling, and Closing Process Group for the functions and features in that increment only. Each increment integrates additional parts of the solution until the final increment, where the remaining parts of the solution are integrated.

Incremental Life Cycle
An incremental process is one in which software is built and delivered in pieces. Each piece, or increment, represents a complete subset of functionality. The increment may be either small or large, perhaps ranging from just a system’s login screen on the small end, to a highly flexible set of data management screens.

Each increment is fully coded and tested, and the common expectation is that the work of an iteration will not need to be revisited. An incremental sculptor would pick one part of her work and focus entirely on it until it’s finished. She may select small increments (first the nose, then the eyes, then the mouth, and so on) or large increments (head, torso, legs and then arms). However, regardless of the increment size, the incremental sculptor would attempt to finish the work of that increment as completely as possible.

Iterative Life Cycle
An iterative process is one that makes progress through successive refinement of the entire product/service/result. A development team takes a first cut at a product, knowing it is incomplete or weak in some (perhaps many) areas. The team then iteratively refines those areas until the product is satisfactory. With each iteration, the software is improved through the addition of greater detail.

For example, in a first iteration, a search screen might be coded to support only the simplest type of search. The second iteration might add additional search criteria. Finally, a third iteration may add error handling.

A good analogy is sculpting. First, the sculptor selects a stone of the appropriate size. Next, the sculptor carves the general shape from the stone. At this point, one can perhaps distinguish the head and torso, and discern that the finished work will be of a human body rather than a bird. Next, the sculptor refines her work by adding detail. However, the sculptor is unlikely to look on any one area as complete until the entire work is complete.




Scrum and agile are both incremental and iterative. They are iterative in that they plan for the work of one iteration to be improved upon in subsequent iterations. They are incremental because completed work is delivered throughout the project.

To better illustrate the differences between iterative and incremental, let’s consider building a dating website iteratively but not incrementally. To do this, the team would build a little of every part of the site—profile management, searching, ads, etc. The team would then revisit all parts, improving each.

The team would then revisit all parts again, making further improvements. In this purely iterative way, the entire site is getting a little better.

Next, consider developing the same site with a purely incremental, but not iterative process. If a dating site were built incrementally, the team would build and perfect profile management before starting on any other part of the site. They would then build and perfect a second area, say searching, before moving onto the third area. Each functional area would be made perfect before the next area was started.

Neither iterative nor incremental is all that great alone. But together—as they are with Scrum—they are fantastic.

No comments:

Post a Comment