Software Project Management 4th Edition: Selection of An Appropriate Project Approach
Software Project Management 4th Edition: Selection of An Appropriate Project Approach
Software Project Management 4th Edition: Selection of An Appropriate Project Approach
Management Chapter 4
4th Edition
Selection of an
appropriate project
approach
A project approach=process
model.
e.g: waterfall.
1
©The McGraw-Hill Companies, 2005
*Build or buy
• With in-house development ,developers and users are in
the same organization.
• If development is outsourced, they are in different
organizations.
2
©The McGraw-Hill Companies, 2005
• Software development can be:
- In house development .
- Out sourced development .
3
©The McGraw-Hill Companies, 2005
General approach
• Look at risks and uncertainties e.g.
– are requirement well understood?
– are technologies to be used well understood?
7
©The McGraw-Hill Companies, 2005
Waterfall
8
©The McGraw-Hill Companies, 2005
Waterfall
• the ‘classical’ model
• imposes structure on the project
• every stage needs to be checked and signed off.
• There is a sequence of activity.
• BUT
– limited scope for iteration.
– (a little of go back)
Which is the strength of the process model . Having
reopened completed activities delay the promised
completion dates.
So waterfall allows project completion times to be
forecast with confidence (allowing effective control
of the project) . 9
©The McGraw-Hill Companies, 2005
V-process model
11
©The McGraw-Hill Companies, 2005
Evolutionary delivery: prototyping
‘ An iterative process of creating quickly and inexpensively
live and working models to test out requirements and
assumptions’
14
©The McGraw-Hill Companies, 2005
Other ways of categorizing
prototyping
15
©The McGraw-Hill Companies, 2005
• To what extent:
17
©The McGraw-Hill Companies, 2005
The incremental process
Intentional
incremental
delivery
18
©The McGraw-Hill Companies, 2005
Incremental approach: benefits
1. Feedback from early stages used in developing latter stages
2. Shorter development thresholds
3. User gets some benefits earlier
4. Project may be put aside temporarily
5. Reduces ‘gold-plating’
- gold-plating : unnecessary features are not requested because
users know that features can be included in next increment .
- BUT there are some possible disadvantages
1. Loss of economy of scale : conceptual integrity sometimes suffers
because there is little motivation to deal with scalability and
extensibility.
2. Programmers may be more productive working on one large system
than a series of smaller ones.
3. Software breakage : later increment may require modifications to
earlier increment.
19
©The McGraw-Hill Companies, 2005
The outline incremental plan
should consist of:
• Having defined the overall objectives and an open
technology plan, the next stage is to plan the increments
using the following guidelines:
1. Steps ideally 1% to 5% of the total project
2. Non-computer steps should be included
3. Ideal if a step takes one month or less:
not more than three months
4. Each step should deliver some benefit to the user (must
have output)
5. Some steps will be physically dependent on others.
• In other cases value-to-cost ratio may be used to decide
priorities.
20
©The McGraw-Hill Companies, 2005
Which step first?
• Some steps will be pre-requisite because of physical
dependencies
• Others may be in any order
• Value to cost ratios may be used
– V/C where
– V is a score 1-10 representing value to customer, written
by customer.
– C is a score 0-10 representing value to developers,
written by developer.
– value-to-cost ratios can be used to establish the order in
which increment are to be delivered .
21
©The McGraw-Hill Companies, 2005
V/C ratios: an example
step value cost ratio
profit reports 9 1 9 2nd
online database 1 9 0.11 5th
ad hoc enquiry 5 5 1 4th
purchasing plans 9 4 2.25 3rd
profit- based pay 9 0 inf 1st
for managers
22
©The McGraw-Hill Companies, 2005
‘Agile’ methods
• Agile method : are designed to overcome disadvantage of heavy weigh
methodologies
• There are various agile approaches : DSDM ,scrum, extreme
programming (xp).
structured development methods have some perceived
advantages:
1. Produce large amounts of documentation which can be largely
unread
2. Documentation has to be kept up to date
3. Division into specialist groups and need to follow procedures stifles
communication
4. Users can be excluded from decision process
5. Long lead times to deliver anything etc.
The answer? ‘Agile’ methods?
23
©The McGraw-Hill Companies, 2005
Extreme programming
1. Increments are of one to four weeks ,increment in xp
means release ,each release improve old features and may
add new features.
2. Customer can suggest improvement at any point,
communication is face-to-face ,formal documentation is
avoided.
3. Argued that distinction between design and building of
software are artificial.
4. Simplicity: code to be developed to meet current needs only,
because future needs might never realized.
5. Refactoring: frequent re-factoring to keep code structured.
don’t make a little changes in the code, but be courage to
rewrite whole section of the code. If this will keep the code
structured, otherwise the code will be “spaghetti-like”.
24
©The McGraw-Hill Companies, 2005
Extreme programming - contd
installation
28
©The McGraw-Hill Companies, 2005