Project - Development life cycle
Development Lifecycle
What’s the relationship between these?
We know that a project lifecycle is the broadest on the timescale, and it contains multiple phases.
Now, one or more of the phases may include development of a product, service, or result (remember the definition of a project – temporary in nature and creates a P, S, or R?) – and this is done by choosing a corresponding development lifecycle.
Types of Development Life cycle
There are 5 types –
Predictive development life cycle
Also called waterfall development lifecycle. This is how traditionally all projects have been managed. Here the project scope, schedule, and budget are determined early in the lifecycle. Most of the things are pretty much written in rock.
This approach however results in plenty of rework and thus increased cost.
Iterative development lifecycle
The scope is determined early on, rest are determined at the onset of each iteration in which the product, service, or result is created.
In this type of project life cycle, activities are performed in a repetitive fashion in a series of repeated cycles, called Iterations.
Product/Service/Result (aka usable deliverable) is built in an incremental fashion and delivered at the end of each iteration.
These deliverables are fully tested and ready to be pushed to production. Subsequent iterations may either enhance these deliverables or build something new.
These iterations may run within phases, and these phases can be sequential or parallel. Also, the iterations may run in parallel or sequential manner. The decision to run them in parallel depends on what is being produced in these iterations and the amount risk appetite project wants to have.
This approach is used for projects that are large or complex, where risks are high, scope is not completely known upfront and is discovered as project progresses. Research based projects typically follow this approach.
At the end of each iteration a ‘usable’ deliverable is created.
Incremental development lifecycle
Here the deliverable's are created in a series of incremental steps, but the Product/Service/Result (aka usable deliverable) is available only at the end of the life cycle.
Adaptive development lifecycle
Agile, Iterative, or Incremental lifecycles are termed as Adaptive.
This a bit advanced version of iterative and incremental life cycle where scope unknowns are high. The main difference is that the duration of iterations is very small.
Consider Agile software development practice. The product is released to production over few release cycles. Each release consists of few smaller (2-4 weeks, typically) iterations. Each release of the product comes out in a span of couple of months, and then the next release of the product begins. Pretty much same set of activities are performed in each of these iterations – design, development (construction), testing, and release of deliverables.
No comments:
Post a Comment