project management week 3 project lifecycle planning · project management week 3 project lifecycle...
TRANSCRIPT
1
Project Management
Week 3
Project Lifecycle
Planning
Lecture Overview
� Pure waterfall
� Code & fix
� Spiral
� Modified waterfall
� Evolutionary prototyping
� Staged delivery
� Design-to-schedule
� Evolutionary delivery
� Design-to-tools
� Commercial off the shelf software
� How to choose the lifecycle model to suit your project
Lifecycle Planning
� Every software development project must endure a
lifecycle
� The lifecycle consists of all the activities between
the time version 1.0 of a systems begins right up to
version 6.74B is released to the customer
What is the project lifecycle?
� A lifecycle model is a prescriptive model of what
should happen between project initiation & project
closure
2
Lifecycle Planning
What is the function of the project
lifecycle?
� To establish the order in which a project
specifies prototype designs, implements,
reviews, tests and performs it’s other
activities.
� It establishes the criteria that you use to
determine whether to proceed from one task
to the next
Lifecycle Planning
� The software development lifecycle concerns
the period of the first glimmer until initial release
� A lifecycle plan or focus can be directed to new
product development or to the maintenance
updates of existing software
� There are many lifecycle models and the model
you choose has as much influence over your
project success as any other planning decision you
make
Lifecycle Planning
Choosing the appropriate lifecycle
� If you choose the appropriate lifecycle model
for your project, you can make your project:
� Streamline, ensuring each step moves you closer
to your goal;
� You can improve your project development
speed;
� Improve quality, project tracking, control &
client relations, minimize overheads & risk
exposure
3
Lifecycle Planning
Choosing the wrong lifecycle
� If you choose the wrong lifecycle model for
your project, you can cause:
Slow, repeated and unnecessary work and frustration;
� Not choosing a lifecycle model can produce the
same effects
Pure Waterfall Model
What is the WFM?
� This model is the grandfather of all lifecycle models;
� It provides the basis for other more effective lifecycle
models;
� In this model a project progresses through an orderly
sequence of steps from the initial software concept through
to system testing;
� The project holds a review at the end of each phase to
determine whether it is ready to advance to the next phase.
Pure Waterfall Model
� If the review illustrates that the project isn’t
ready to move to the next phase, it stays in the
current phase until it is ready.
� The WFM is document driven, as documents
are the main work products that move from phase
to phase of the project;
� These phases are discontinuous as they do not
overlap, remaining static when they are complete.
4
Software
Concept
Requirements
Analysis
Architectural
Design
Detailed
Design
Code &
Debug
System
Testing
Pure Waterfall Model
Benefits of the Waterfall Model
� Helps detect errors early;
� Provides requirements stability developers
desire;
� Helps minimize the planning of overheads as all
the planning can be conducted up front;
� Works well for well understood complex
projects as they benefit from tracking complexity
in an orderly way;
Benefits of the Waterfall Model
� Works well when quality requirements
dominate cost & schedule requirements as the
elimination of midstream changes eliminates a
huge common source of errors;
� This model is successful if you have technically
weak staff or inexperienced staff as it provides
structure for the project, assisting in minimizing
wasted effort.
5
Costs of the Waterfall Model
� It doesn’t produce tangible results in the form of
software until the end of the lifecycle;
� However, to someone who is familiar with the WFM,
the documents generated provide meaningful indications
of progress throughout;
� It is difficult to fully specify requirements at the
beginning of the project before any design work or code
have been completed;
� Developers complain about users not knowing what
they want
Costs of the Waterfall Model
� Most customers are not equipped to specify software as
they are not computer experts;
� As a result , they will forget practical issues until they
view the working product, a costly mistake when using the
WFM;
� The WFM is not flexible as requirements must be
specified fully at the beginning of the project, taking a
long time to view working software;
� It is criticized for not permitting backtracking to correct
mistakes, backing-up is possible, but difficult.
Costs of the Waterfall Model
� Tools & methods which span the lifecycle
phases are difficult to accommodate in the
WFM’s disjointed phases;
� The WFM prescribes an excessive amount of
documentation for a RD project;
� Updating the spec can become a full-time job
due to the lack of flexibility;
6
Costs of the Waterfall Model
� The WFM generates few visible signs of
progress until the end of the project;
� The weaknesses of this model make it poorly
suited to a RD project;
� A modified waterfall model can work better.
The Salmon Lifecycle Model
� The Salmon Lifecycle Model puts some of the
problems of the lifecycle model into perspective;
� This is exactly the same as the pure WFM,
except it allows the overlapping of system phases;
� If you discover a flaw in the architecture during
any of these phases, it is awkward and difficult to
correct, however, it is more possible than the pure
WFM.
Code & Fix Model
� This method is seldom useful, but none the less
common;
� If you haven’t chosen a LCM you are probably
using the Code & Fix model by default;
� If you haven’t conducted much planning, you
are probably using C&F with short schedule;
� This LCM gives rise to the Code like Hell
approach previously outlined.
7
Code & Fix Model
What is the Code & Fix model?
� C&F is an informal model that is in common use
because it is simple, not because it works well;
� In this model, you may start with a general idea of what
you want to build, you may have a formal spec, you may
not;
� You then use whatever combination of informal design,
code, debug and test methodologies that suits you until
you have a product that is ready to be released.
Advantages of the Code & Fix
Model
� It has no overheads, as you don’t spend any
time on planning, documentation, quality
assurance, standards enforcement - nothing but
code;
� Since you code from the start - signs of
progress are immediately evident;
� Application of this model requires little
expertise, anyone who has ever written a
computer program is familiar with this model;
Disadvantages of the Code & Fix Model
� C&F provides no means of assessing progress as you
just code until you are complete;
� It also has no means of assessing quality issues or
identifying risks;
� If you discover half way through the project that the
design approach is fundamentally flawed, you have no
choice but to start again;
What project is this method suitable for?
� Suitable for tiny projects only.
8
The Spiral Model
What is the Spiral Model?
� This model is a risk-oriented LCM that breaks a
software project up into mini-projects;
� Each mini-project addresses one or more major risks
until all the major risks have been addressed;
� The concept of risk is broadly defined in this context
and it can refer to poorly understood requirements,
architecture, performance problems and problems in the
underlying technology.
The Spiral Model
� After the major risks have all been addressed, the SM
terminates as a WFM would.
� The basic idea of the SM is that you start on the small
scale in the middle of the spiral, then:
� Explore the risks;
� Make a plan to handle the risks;
� Commit to an approach for the next iteration;
� Each iteration moves the project to a larger scale, you roll
up one layer, check that is what you want and begin on the
next layer.
The Spiral Model
� Each iteration of the SM involves six steps, those on
the outer edges of the spiral:
� Determine objectives, alternatives & constraints;
� Identify & resolve risks;
� Evaluate alternatives;
� Develop the deliverables for that iteration & verify
they are correct;
� Plan the next iteration;
� Commit to an approach for the next iteration if you
decide to have one.
9
The Spiral Model
� In the SM, the early iterations are the cheapest as you
spend less developing the concept of operation than you
do requirements and so on;
� Each iteration of the SM may be tailored to suit the
individual needs of the project;
� This model may be combined with other LCM’s in a
couple of different ways:
� You can begin your project with a series of
different risk reduction iterations;
The Spiral Model
� After you have reduced risks to an acceptable level, you
can conclude the development effort with a waterfall
lifecycle or other non-risk-based lifecycle;
� You can incorporate other lifecycle models as iterations
within the SM;
� If one of your risks is that you are not sure that your
performance targets are achievable, you might include a
prototyping iteration to investigate whether you can meet
the targets.
The Spiral Model
Start
ReleasePlan the next
iteration
Determine
objectives,
alternative &
constraints
Commit to
approach
for next
iteration
Evaluate
alternatives
Develop the
deliverables for
the iteration &
verify
correctness
Identify &
resolve risks
10
Advantages of the Spiral Model
� As costs increase, risks decrease, the more time &
money you spend using this method, the less risk you are
taking, which is exactly what is desired in a RD project;
� The Spiral Model provides as much management &
control as the traditional WFM as there are checkpoints at
the end of each iteration;
� The model is risk-oriented providing you with early
indications of any insurmountable risks;
� If the project can’t be completed for technical or other
reasons, you will find out early, that it won’t cost much.
Disadvantages of the Spiral
Model
� The Spiral Model is complicated as it requires
conscientious, alternative & knowledgeable management;
� Using this model, it is difficult to define objective
verifiable milestones that indicate whether you are ready to
move to the next layer;
What project is this method suitable for?
� If your project is straight-forward, you won’t need to apply
the flexibility & risk management provided by the Spiral
Model.
Modified Waterfall Models
� Most of the weaknesses in the Pure Waterfall Model
arise not from problems with these activities; but due to
the treatment of these activities as disjointed sequential
phases;
� These weaknesses can be corrected within the Pure
Waterfall Model with relatively minor modifications in
several ways such as:
� Modifying the phases so they overlap;
� Reducing the emphasis on documentation;
� Allowing for more regression.
11
Sashimi : Waterfall Model with
Overlapping Phases
� Peter De Grace describes one of the modifications
possible to the WFM as the Sashimi Model.
What is the Sashimi Model?
� The name itself comes from a Japanese hardware
development model (Fuji Xerox), referring to the Japanese
style of presenting raw fish with slices overlapping each
other;
� In other words, this model allows the phases to overlap.
Software
Concept
Requirements
AnalysisArchitectural
Design
Detailed
Design
Code &
Debug
System
Testing
The Sashimi Lifecycle Model
Benefits of the Sashimi WFM
� This model allows for a stronger degree of phase overlap,
suggesting you might well be into architectural design and
detailed design before you consider requirements analysis to
be complete;
� This project approach is reasonable for most projects which
tend to gain important insights into what they are doing as
they move through their development cycles and which
function poorly with strictly sequential development plans;
� It permits substantial reduction in documentation by
providing personnel continuity between all phases
12
Costs of the Sashimi WFM
� Due to the overlap among phases, milestones
are more ambiguous as it is harder to track
progress accurately;
� Performing activities in parallel as in this
model, can lead to:
� miscommunication;
� mistaken assumptions;
� inefficiency.
Waterfall with Sub-Projects
� Another problem with the TLCM is that each
phase must be complete before beginning the next.
� The modified waterfall model with sub-projects
addresses this problem;
What is the WFM with sub-projects?
� This approach allows you to perform some of the
waterfall tasks in parallel, with careful planning;
Waterfall with
Sub-Projects
Software
Concept
Requirements
Analysis
Architectural
Design
Detailed
Design
Code &
Debug
System
Testing
Detailed
Design
Code &
Debug
System
Testing
System
Testing
13
Benefits of the Waterfall Model
with Sub-Projects
� This model has an architecture that has
broken the system into logically
independent subsystems, or separate
projects which can proceed at their own
pace;
Costs of the Waterfall Model
with Sub-Projects
� The fact that unforeseen interdependencies
exist, however, this can partly be accounted for
by:
� Eliminating dependencies within the architecture;
� Or by waiting until after detailed design time to
break the project into sub-projects.
Waterfall Model with Risk
Reduction
� Another problem with the TLCM is that it requires that
you fully define and understand the requirements before
you begin the architectural design - this leads to increased
risk;
� The WFM with risk reduction addresses these
requirements risks;
What is the WFM with risk reduction?
� This approach solves the risk problem by:
� Developing a user interface prototype;
� Using system storyboards;
14
Waterfall Model with Risk
Reduction
� Conducting user interviews;
� Videotaping users interacting with an older
system;
� Any other requirements gathering practices.
� These are applied to ensure that risk is reduced
by concentrating on certain aspects of the project.
Waterfall Model with Risk
Reduction
Software
Concept
Requirements
AnalysisArchitectural
Design
Detailed
Design
Code &
Debug
System
Testing
Risk Reduction
Spiral
Benefits of the Waterfall Model
with Risk Reduction
� To overcome problems with the WFM’s
rigidity, you can precede a waterfall model with a
risk reduction spiral for requirements analysis or
architectural design;
� The risk reduction preamble to the waterfall
lifecycle isn’t limited to requirements analysis - it
can be used to reduce any other risk to the
project.
15
Waterfall Model with Risk
Reduction
What project is the WFM with risk reduction
suitable?
� This model is suitable for projects developing a
high risk nucleus to the system, you might use a
risk reduction cycle to fully develop the high risk
nucleus before you commit to a full-scale project
Evolutionary Prototyping
What is the Evolutionary Prototyping LCM?
� This model allows you to develop the system
concept as you move through the project;
� Usually you begin by developing the most
visible aspects of the system;
� Demonstrate this part of the system to the
customer and then continue to develop the
prototype based on the feedback you receive;
Evolutionary Prototyping
� At some point it is agreed with the customer that the
prototype is good enough, at which point any remaining work
on the system is completed and the prototype is released as
the final product;
Initial
Concept
Design &
implement
Initial
Prototype
Refine
Prototype
Until
Acceptable
Complete
& Release
Prototype
16
Benefits of Evolutionary
Prototyping
� EPT is especially useful when requirements are changing
rapidly;
� When the customer is reluctant to commit to a set of
requirements;
� Or when neither you nor customer know the application
domain area very well;
� Also useful if the developers are unsure of the optimal
architecture or algorithms to use;
� It also produces steady visible signs of progress which is
useful when there is a demand for devpt speed.
Costs of Evolutionary
Prototyping
� It is impossible to know at the outset of the project,
how long it will take to create an acceptable product;
� It is impossible to say exactly how many iterations you
will have to go through;
� This approach can easily become an excuse to do code
& fix development - real EPT includes real requirements
analysis, real design & real maintainable code;
� This occurs in much smaller increments than you find
with traditional approaches.
Staged Delivery Model
What is the Staged Delivery Model?
� Another lifecycle model which demonstrates the software
to the customer in successively refined stages;
� Unlike the EPT model, when you use staged delivery, you
know exactly what you are going to build when you set out to
build it;
� Staged delivery is more distinctive because the software is
not delivered at the end of the project in one fell swoop;
� It is delivered in successive stages of the project - this
model is also known as “incremental implementation”.
17
Staged Delivery Model
� Staged Delivery avoids the waterfall models problem of
no part of the system being complete until all of it is
complete;
� Once you have completed the design, you can
implement & deliver the system in the stages;
Software
Concept
Requirements
Analysis
Architectural
Design
Staged Delivery Model
Stage 1: detailed design, code &
debug, test & delivery
Stage 2: detailed design, code &
debug, test & delivery
Stage 3: detailed design, code &
debug, test & delivery
Advantages of Staged Delivery
Model
� Allows you to put useful functionality into the hands of
your customers earlier than if you delivered 100% of the
project at the end of the project;
� If stages are planned carefully you may be able to
deliver the most important functionality the earliest and
your customers can start using the software at that point;
� It also provides tangible signs of progress earlier in the
project than less incremental projects do, such signs of
progress can be a valuable ally in keeping schedule
pressure to a manageable level.
18
Disadvantages of Staged Delivery
Model
� It won’t work without careful planning at both
management and technical levels:
� At management level: be sure the stages you plan
are meaningful to the customer and that you distribute
work among project personnel in such a way that they
can complete their work in time for the staged
deadline;
� At a technical level: be sure you have accounted
for all technical dependencies between different
components of the product and phases of the project.
Design-to-Schedule Model
What is the Design-to-Schedule Model?
� This model is similar to the staged model as it plans to
develop the product in successive stages;
� The difference is that you don’t necessarily know at the
outset that you won’t make it to the last release;
� For example, you may have five stages planned, but
only make it to the third due to an immovable deadline.
Design-to-Schedule
Model
Software
Concept
Requirements
Analysis
Architectural
Design
High priority : detailed design, code
& debug, test.
Medium High priority: detailed
design, code & debug, test.
Medium priority: detailed design,
code & debug, test.
RELEASECan also have
Medium-Low and Low
priorities also
19
Advantages of the Design-to-
Schedule Model
� This LCM can be a viable strategy for ensuring you
have a product to release by a particular date;
� If you must have functioning software, this strategy
guarantees that you will have something;
� This model is useful for parts of the product you don’t
want on the critical path;
� One of the critical elements of this LCM is that you
prioritize the features and plan your stages so that the
early stages contain the highest priority features, leaving
the low priority features for later.
Disadvantages of the Design-to-
Schedule Model
� If you don’t get through all the stages, you will
have wasted time specifying features you don’t
ship - if you hadn’t wasted time on incomplete
features, you would have had time to squeeze in
more complete features.
What type of project is suitable for this
model?
� Useful when your project has a drop-dead
delivery date.
What type of project is this LCM suited to?
� The decision to use this approach depends on how
much confidence you have in your scheduling ability;
� If you are highly confident in your schedule, this is
an inefficient approach;
� If you are less confident, this approach may be a
project saver.
Design-to-Schedule Model
20
Evolutionary Delivery Model
What is the Evolutionary Delivery Model?
� This is a LCM that straddles the ground between evolutionary
prototyping & staged delivery;
� In this approach, you develop a version of the product, show it
to the customer and refine the product based on customer
feedback;
� How much this approach resembles EPTM depends on the
extent to which you plan to accommodate the customer requests;
� If you plan to accommodate most requests, Evolutionary
Delivery will look a lot like EPTM, if less requests, it will look
like Staged Delivery.
Software
Concept
Preliminary
Requirements
Analysis
Design of
Architecture
& System
Code
Develop a
version
Incorporate
Customer
FeedbackDeliver
the
Version
Evolutionary Delivery
Model
Elicit
Customer
Feedback
Code &
Debug
Deliver
Final
version
Repeat this
cycle until you
run out of time
or money, you
complete the
number of
iterations
planned or the
customer is
satisfied
Evolutionary Delivery Model
� This LCM draws from the control you get with Staged Delivery &
flexibility you get with Evolutionary Prototyping - you can tailor it to
provide as much control or flexibility as you need;
� The differences between EPT & ED are more differences in
emphasis than in fundamental approach;
� In EPT, the initial emphasis is on the visible aspects of the system,
you go back later and correct holes in the systems foundation;
� In ED, initial emphasis is on the core of the system which consists
of lower level system functions that are unlikely to be changed by
customer feedback
21
Design-to-Tools Model
What is the Design-to-Tools Model?
� A radical approach that has been historically used only
within exceptionally time sensitive environments;
� As tools have become more flexible & powerful, the
number of projects that can consider using DTT has
increased;
� The idea behind this approach is that you put a
capability into your product only if ii is supported by
existing software tools;
Design-to-Tools Model
� If it isn’t supported, you leave it out - tools mean: code &
class libraries, code generators, RD languages and other
software tools that can dramatically reduce implementation
time;
� If you choose tools carefully, you can implement most of
the functionality you would like;
� When time is a constraint in this approach, you might be
able to implement more total functionality than you would
have with another approach;
� It is the functionality, the tools make easiest to implement.
Design-to-Tools Model
Functionality
supported by the
tools
Functionality
that will be built
Functionality
that will not be in
the product
Ideal
functionality
22
Advantages of Design-to-Tools
� DTT can provide exceptional development speed, but it
typically provides less control over your products
functionality than any other model;
� This model can be combined with other flexible LCM;
� You may conduct an initial spiral to identify the
capabilities of existing software tools to identify core
requirements and to determine if the design-to-tools
approach is workable;
Advantages of Design-to-Tools
� This approach can be used to implement a throwaway
prototype, prototyping only the capabilities that can be
implemented easily with tools, then implement the real
software using another LCM.
� This model can also be combined with:
� Staged Delivery;
� Evolutionary Delivery;
� Design-to-Schedule.
Disadvantages of Design-to-
Tools
� You can lose a lot of control over the development of your
product when using this model;
� You may not be able to implement all the features you
want or the way you want to;
� Using this method, you may also become dependent on
commercial software producers and on their product
strategies.
What project would this approach be suited to ?
� Small mostly disposable programs, it is a weak approach
for programs that need to be maintained for years.
23
Commercial off-the-Shelf
Software
What is the Commercial-off-the-shelf
Software model?
� Instead of developing software, this model
provides the option to buy software off-the-shelf;
� It may rarely satisfy your needs, however, the
advantages and disadvantages of each must be
considered.
Advantages of Commercial off-
the-Shelf Software
� This type of software is available immediately;
� It can provide customers with valuable capabilities
between the time of buying the software and releasing
your own creation;
� Customers can learn to work around product limitations
by the time you could have provided them with custom
software.
Disadvantages of Commercial
off-the-Shelf Software
� As time goes by, commercial software must be revised
to suit your product and customer need more closely;
� Custom software won’t turn out to match your mental
vision of the ideal software product;
� When you actually build your own software, you have
to make design, cost and schedule concessions and actual
custom-built products will fall short of the ideal
envisioned.
24
How do you Choose a Lifecycle
Model for your Project?
� Different projects have different needs even if they all
need to be developed as quickly as possible.
� Which method is the fastest?
� There is no such thing as a RD LCM because the LCM
you use depends on the context in which it was used -
fastest in some situations, could be slower in others;
� You must also remember that LCM can also be
misapplied, thus can work poorly.
How do you Choose a Lifecycle
Model for your Project?
To choose the most effective LCM for your project,
you must examine your project and answer the
following questions:
� How well do the customer & I understand the
requirements at the beginning of the project?
� Is our understanding likely to change significantly as
we move through the project?
� How well do I understand the system architecture?
� Am I likely to make major changes mid-way through
the project?
How do you Choose a Lifecycle
Model for your Project?
� How much reliability do I need?
� How much do I need to plan ahead and design ahead
during this project for future versions?
� How much risk does this project entail?
� Am I constrained to a pre-defined schedule?
� Do I need to be able to make midcourse corrections?
� Do I need to be able to provide my customers and
management with visible progress throughout the project?
25
How do you Choose a Lifecycle
Model for your Project?
� How much sophistication do I need to use this
lifecycle model successfully?
It is best practice that the more closely you can
stick to a linear waterfall-like approach and do
it efficiently, the more rapid your development
will be!
Project Management
� Overview of all available lifecycle
models to choose from when implementing
your software project;
� Next week : Software Estimation &
Metrics.