Human Factors in Software Engineering

advertisement
Project Management

Project Planning
 Estimating
 Scheduling
Project plan

Define project constraints
 Make initial assessment of project
parameters
 Define project milestones and deliverables
 Incrementally apply the project
management process loop
Loop
–
–
–
–
–
–
–
–

Draw up project schedule
Initiate activities according to schedule
Wait awhile
review project progress
revise estimates of project parameters
apply revisions to project schedule
re-negotiate project constraints and deliverables
if problems arise, initiate technical review and possible
revision
until project completed or cancelled
Project Planning / Scheduling

Project milestones
– Stage deliverables

Option Analysis
– Determine organization and project specific
goals
– Determine project options
– Map options against goal fulfilment
– Convert to polar graphs
Option analysis
Reliability
Schedule
Reuse
Option A
Option B
Option C
Cost
Portability
Efficiency
Project scheduling

Separate total work into tasks
– Requirements analysis : coding : testing is 2:1:2

Work out tasks, timings and dependencies
– make out activity network / activity bar chart

PERT charts
– include pessimistic, likely and optimistic estimates

Show critical path (i.e. shortest time)
 Staff allocation is also necessary
Critical Path Analysis

This is used to determine how long the
project overall will take.
 The activities involved in the project are
defined and then sequenced.
 The sequence of the activities is determined
by the dependencies in the project.
Activity Sequencing

Involves reviewing activities and determining
dependencies.
– Mandatory dependencies: inherent in the nature of the
work; hard logic.
– Discretionary dependencies: defined by the project
team; soft logic.
– External dependencies: involve relationships between
project and non-project activities.

You must determine dependencies in order to use
critical path analysis.
Project Network Diagrams

Project network diagrams are the preferred
technique for showing activity sequencing.
 A project network diagram is a schematic
display of the logical relationships among,
or sequencing of, project activities.
Sample Network Diagram
Step 1

Find all of the activities that start at node 1.
 Draw their finish nodes and draw arrows
between node 1 and those finish nodes.
 Put the activity letter or name and duration
estimate on the associated arrow.
Step 2

Continuing drawing the network diagram,
working from left to right.
 Look for bursts and merges.
– Bursts occur when a single node is followed by
two or more activities.
– A merge occurs when two or more nodes
precede a single node.
Steps 3 and 4

Step 3.
– Continue drawing the project network diagram
until all activities are included on the diagram
that have dependencies.

Step 4.
– As a rule of thumb, all arrowheads should face
toward the right, and no arrows should cross on
the network diagram.
Example – Make a cup of tea

Activities:
– Get a cup.
– Fill the kettle.
– Pour the tea.
– Put a teabag in the teapot.

These activities are in the wrong sequence,
because, we cannot pour the tea until the teabag
and the boiling water have been in the pot for a
couple of minutes.
All activities?

Not all activities are documented:
–
–
–
–

Get a cup.
Fill the kettle.
Pour the tea.
Put a teabag in the teapot.
We need to get a teapot and milk.
 We need to boil the kettle.
 We need to allow the tea to draw.
Sequencing the activities








1. Fill the kettle.(20 sec).
2. Put the kettle on to boil (2 sec).
3. Get a teapot (7 sec).
4. Get a cup (4 sec).
5. Get milk (10 sec).
6. Get teabags(3 sec).
7. Put boiling water and teabag into the teapot (15
sec).
8. Pour the tea(3 sec).
Sequencing the activities

8 cannot be done until all of the other things
have been done.
 4 and 5 can be done any time before 8.
 6 must be done before 7.
 1 must be done before 2.
 2 must be done before 7.
 3 must be done before 7.
Network path
2
1
20 sec
2 sec
3
Start
6
7 sec
7
3 sec
10 sec
5
4
4 sec
15 sec
8
Critical Path Method (CPM)

CPM is a project network analysis technique used
to predict total project duration.
 A critical path for a project is the series of
activities that determines the earliest time by
which the project can be completed.
 The critical path is the longest path through the
network diagram and has the least amount of slack
or float.
Finding the Critical Path

First develop a good project network
diagram.
 Add the durations for all activities on each
path through the project network diagram.
 The longest path is the critical path.
Simple Example of
Determining the Critical Path

Consider the following project network
diagram. Assume all times are in days.
E=1
C=2
start
1
A=2
2
B=5
4
3
6
D=7
5
a.a.How
Howmany
manypaths
pathsare
areononthis
thisnetwork
networkdiagram?
diagram?
b.b.How
Howlong
longisiseach
eachpath?
path?
c. Which is the critical path?
c. Which is the critical path?
d.d.What
Whatisisthe
theshortest
shortestamount
amountofoftime
timeneeded
neededtoto
complete
completethis
thisproject?
project?
F=2
finish
More on the Critical Path

If one or more activities on the critical path takes
longer than planned, the whole project schedule
will slip unless corrective action is taken.
 Misconceptions:
– The critical path is not the one with all the critical
activities; it only accounts for time.
– There can be more than one critical path if the lengths
of two or more paths are the same.
– The critical path can change as the project progresses.
Critical Path
T1
T5
M1
End
T6
s tart
T2
T3
M2
M3
M4
T tas k
M Miles tone
T7
T8
Software Cost Estimation

Hardware costs
 Travel and training costs
 Effort costs
 can be calculated by
–
–
–
–
–
–
–
Algorithmic cost modelling
Expert judgement
Estimation by analogy
Parkinson’s Law (whatever is there will be spent)
Pricing to win
Top-down estimation
Bottom-up estimation
Algorithmic cost modelling

highly parameterised algorithms
 were originally based on no of lines of code
 now based on Function point analysis
– External inputs and outputs
– User interactions
– External interfaces
– Files used by the system
Download