0% found this document useful (0 votes)
100 views

8 Proj Mgmt2

The document discusses software project management and techniques for staffing, scheduling, and tracking software engineering projects. It covers identifying good software engineers, developing work breakdown structures and activity networks, using Gantt charts and critical path methods to schedule tasks and determine dependencies. Formulas are provided for calculating earliest and latest start/finish times to minimize project duration.

Uploaded by

api-3775463
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
100 views

8 Proj Mgmt2

The document discusses software project management and techniques for staffing, scheduling, and tracking software engineering projects. It covers identifying good software engineers, developing work breakdown structures and activity networks, using Gantt charts and critical path methods to schedule tasks and determine dependencies. Formulas are provided for calculating earliest and latest start/finish times to minimize project duration.

Uploaded by

api-3775463
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 40

Sof tw ar e Pr oje ct

Ma na ge men t
(Cont in ued…)

1
Sta ff in g
❚ Project Managers
usually take
responsibility for
choosing their team:
❙ need to identify and
select good software
engineers for the
success of the project.
2
Sta ff in g
❚ A common misconception:
❙ one software engineer is as
productive as another:
❚ Experiments reveal:
❙ a large variation in productivity
between the worst and best in a
scale of 1 to 10.
❙ Worst engineers even help
reduce the overall productivity of
the team
❘ in effect exhibit negative
productivity. 3
Who is a Go od S oftw are
Engineer?
❚ Good programming abilities
❚ Good knowledge of the project areas
(Domain)
❚ Exposure to Systematic Techniques
❚ Fundamental Knowledge of Computer
Science
❚ Ability to work in a team
❚ Intelligence
❚ Good communication skills:
❙ Oral
❙ Written
❙ Interpersonal
❚ High Motivation
4
Who is a Good So ftware
Engi neer? (cont .)

❚ Studies show:
❙ these attributes vary as much as
1:30 for poor and bright
candidates.
❚ Technical knowledge in the
area of the project (domain
knowledge) is an important
factor, determines:
❙ productivity of an individual
❙ quality of the product he
5
develops.
Who is a Good So ftware
Engi neer?(cont .)

❚ A programmer having
thorough knowledge of
database applications (e.g
MIS):
❙ may turn out to be a poor
data communication
engineer.

6
Sch ed ul ing
❚ Scheduling is an important activity
for the project managers.
❚ To determine project schedule:
❙ Identify tasks needed to complete the
project.
❙ Determine the dependency among
different tasks.
❙ Determine the most likely estimates
for the duration of the identified
tasks.
❙ Plan the starting and ending dates for
various tasks. 7
Work Br eakdow n
Structure
❚ Work Breakdown Structure (WBS)
provides a notation for representing task
structure:
❙ Activities are represented as nodes of a tree.
❙ The root of the tree is labelled by the problem
name.
❙ Each task is broken down into smaller tasks
and represented as children nodes.
❚ It is not useful to subdivide tasks into
units which take less than a week or two
to execute.
❙ Finer subdivisions mean that a large amount of
time must be spent on estimating and chart
revision. 8
Work Br eakdow n
Structure
Compiler Project

Requirements Design Code Test Write Manual

Lexer Parser Code Generator

9
Acti vity Ne tworks
❚ WBS structure can be refined into
an activity network representation:
❙ Network of boxes and arrows
❙ shows different tasks making up a
project,
❙ represents the ordering among the
tasks.
❚ It is important to realize that
developing WBS and activity
network
❙ requires a thorough understanding of
the tasks involved.
10
Acti vity Ne twork
Code Lexer

Design Code Parser

Requirements Code Code Generator Test

Write Manual

11
Gantt Charts
❚ Named after its developer
Henry Gantt.
❙ a form of bar chart:
❘ each bar represents an
activity,
❘ bars are drawn against a time
line,
❘ length of each bar is
proportional to the length of
time planned for the activity.

12
Gantt Charts
❚ Gantt charts are not specific to
software engineering.
❚ Gantt charts used in software
project management are:
❙ enhanced version of standard
Gantt charts.
❙ colored part of a bar shows the
length of time a task is estimated
to take.
❙ white part shows the slack time,
❘ the latest time by which a task must
be finished. 13
Gantt Chart
Requirements

Design
Code Lexer

Code Parser

Code Code Generator

Test

Write Manual

14
Scheduli ng
❚ Many managers believe
❙ an aggressive schedule
motivates the engineers to do a
better and faster job.
❙ However, careful experiments
show:
❘ unrealistic aggressive schedules
cause engineers to compromise on
intangible quality aspects,
• also cause schedule delays.

15
Scheduli ng
❚ A good way to achieve accuracy:
❙ let people set their own
schedules.
❚ Schedule for a large-sized task may
take too long:
❙ Managers need to break large tasks
into smaller ones to find more
parallelism
❘ can lead to shorter development time.
❘ Small-sized tasks help in better tracking

16
Cri ti cal Path
❚ Task dependencies define a partial
ordering among tasks, i.e.
❙ Completion of some tasks must
precede the starting time of some
other tasks.
❚ A critical path:
❙ along which every milestone is critical
to meeting the project deadline.
❚ A Critical Path is a chain of tasks
that determine the duration of the
project.
17
Cri ti cal Paths
❚ A critical paths is sequence of tasks
such that
❙ a delay in any of the tasks will cause a
delay to the entire project.
❚ There can be more than one critical
path in a project.
❚ It is important for the project
manager to be aware of the critical
paths in a project:
❙ can ensure that tasks on these paths
are completed on time.
18
Cri ti cal Paths
❚ Other tasks may have some room
for delay without affecting the
entire project.
❙ If necessary, the manager may switch
resources from a noncritical task to a
critical task.
❚ Several software packages are
available for automating the
scheduling process:
❙ MacProject on Apple Macintosh
computer
❙ MS-Project on Microsoft Windows 19
CPM and PE RT Char ts
❚ While Gantt charts show
the different tasks and
their durations clearly:
❙ they do not show intertask
dependencies explicitly.
❙ this shortcoming of Gantt
charts is overcome by PERT
charts.

20
Cri tical Pat h
Managem ent
❚ Critical Path
Management(CPM) is a
technique for:
❙ Identifying critical paths
❙ Managing project.
❚ The CPM technique is not
specific to software
engineering
❙ has a much wider use.
21
Cri tical Pat h
Managem ent
❚ CPM can assist in answering
questions like:
❙ What are the critical paths in the
project?
❙ What is the shortest time in
which the project can be
completed?
❙ What is the earliest (or latest)
time a task can be started (or
finished) without delaying the
project? 22
Exa mp le
❚ A project involves three tasks:
❙ task a takes 4 hours,
❙ task b takes 5 hours
❙ task c takes 8 hours.
❙ task c cannot commence until task a is
completed.
❚ What is the shortest time in which the
project can be completed?
b
start 5 finish

4 a c
8

23
Exa mp le
❚ Clearly, the project continues until
task a and then task c complete:
❙ which is 12 hours.
❙ Task b takes only 5 hours.
❙ Task b can have 7 hours of leeway to
start and finish.
b
start 5 finish

4 a c
8

24
What data do we need to
constr uct a CPM gra ph?
❚ To construct a CPM graph,
❙ a list of tasks and their durations
are required.
❙ Also, for each task a list of tasks
upon which it depends is
required.
❙ A task may depend on more than
one task.
❚ Project task details can be
given in the form of a table.
25
Tas k Ta ble
❚ Task Duration
Dependents
a 10
b 20
c 20 a,g
d 10 b
e 10 b
f 5 e
g 5
26
CP M Graph
c:20

a:10

start finish
g:5

b:20 f:5
d:10

e:10

27
How do w e work out the var ious start
and fini sh ti mes for tasks?
❚ Minimum time to complete project (MT) =
Maximum of all paths from start to finish
❚ Earliest start time (ES) of a task =
Maximum of all paths from start to this
task
❚ Earliest finish time (EF) of a task = ES +
duration of the task
❚ Latest finish time (LF) of a task = MT -
Maximum of all paths from this task to
finish
❚ Slack time = LS - ES = LF - EF

28
Start and fi ni sh ti mes
for tasks.
❚ Latest start time (LS) of a task = LF -
duration of the task
Task MT ES EF LF LS

a 10 0 10 15 5
b 20 0 20 20 0
c 20 10 30 35 15
d 5 20 25 30 25
e 10 20 30 30 20
f 5 0 5 15 10
g 5 0 5 10 5

29
What are th e float tim e (o r s lack
time) o f tasks?
❚ Float time (or slack time) is the
total time that a task may be
delayed
❙ before it will affect the end time of the
project.
❚ The float times indicate the
"flexibility" in starting and
completion of tasks:
❚ A critical activity is an activity with
zero (0) slack or float time.
30
What is PE RT and how
does it work?
❚ PERT (Program Evaluation and Review
Technique) is a variation of CPM:
❙ incorporates uncertainty about duration of
tasks.
❚ Gantt charts can be derived
automatically from PERT charts.
❚ Gantt chart representation of schedule is
helpful in planning the utilization of
resources,
❙ while PERT chart is more useful for monitoring
the timely progress of activities.

31
Ri sk Ma nag ement
❚ A risk is any unfavorable event or
circumstance:
❙ which might hamper successful or
timely completion of a project.
❚ Risk management:
❙ concerned with the reduction of the
impact of risks.
❚ Risk management consists of three
activities:
❙ risk identification,
❙ risk assessment, and
❙ risk containment.
32
Risk Ha ndli ng
❚ Three main strategies for risk
handling:
❙ Avoid the risk: e.g. change the
requirements for performance or
functionality.
❙ Transfer the risk: allocate risks to third
party
❘ or buy insurance to cover any financial loss
should the risk become a reality.
❙ Contingency planning: Prepare
contingency pans to minimize the
impact of the risk.
33
Risk Ha ndli ng
❚ To decide about risk
handling options, we
must take into
account:
❙ cost of reducing risk
❙ resulting cost saving
from risk reduction.
34
Sof tware Con fi gurati on
Manageme nt
❚ The results (aka deliverables)
of any large software
development effort consists of
a large number of objects:
❙ source code,
❙ design document,
❙ SRS document,
❙ test document,
❙ project plan (SPMP) document,
etc. 35
Sof tware Con fi gurati on
Manageme nt (CONT .)
❚ A configuration is a collection
of deliverables:
❙ being developed for some
customer.
❚ As development proceeds,
❙ the components comprising a
configuration undergo changes:
❙ Even during maintenance, the
components comprising a
configuration keep changing.
36
What is c onf iguratio n
managem ent?
❚ The set of activities
through which the
configuration items are
managed and
maintained
❙ as the product undergoes
its life cycle phases.
37
Sof tware Con fi gurati on
Manageme nt

❚ Existence of variants of a
software product causes
several problems.
❚ Suppose you have several
versions of the same
module, and
❙ find a bug in one of them.
❙ it has to be fixed in all
versions. 38
Sof tware Con fi gurati on
Manageme nt
❚ Different objects are accessed
and modified by a number of
engineers.
❚ Unless strict discipline is
enforced:
❙ regarding updation and storage
of the objects through some
automated tool,
❙ several problems appear.
39
Sof tware Con fi gurati on
Manageme nt
❚ For example, an engineer
might update the module that
he has designed ---
❙ without informing the engineers
who need to interface with this
module.
❚ Or, two engineers may
simultaneously carry out
changes to different portions
of a module:
40
❙ while saving overwrite each

You might also like