Sie sind auf Seite 1von 29

CLASSIC SOFTWARE

PROJECT MANAGEMENT
Joo Pascoal Faria

MIEIC - Engenharia de Software - 2013/14

Index
Project management goals and activities
Project Planning
Project Estimation
Project Monitoring and Control

PROJECT MANAGEMENT
GOALS AND ACTIVITIES

Project management goals


Ensure delivery according to expectations
on scope with the expected functionality (mbito)
on time according to the expected schedule (prazo)
on budget according to the costs expected (oramento)
on quality with the expected quality (qualidade)
Ensure satisfaction
of customer
of top management
of project team

Satisfaction = delivery expectation

Project management activities [PMBOK]


organized around knowledge areas (some related with project variables) and
project lifecycle phases
Knowledge areas

Integration Management
Human Resource Management
Communications Management
Risk Management
Procurement Management

Project Execution

Quality Management

Project Planning

Cost Management

Project Initiation

Time Management

Project Closure

Scope Management

Project (Monitoring &) Control

Project lifecycle phases

PROJECT PLANNING (PP)

The need for plans


Why do we need plans?
(Realistic) Plans are needed to
make commitments
dont commit to a date/budget/scope without a plan!

get needed resources


guide the work
what should be done next?

coordinate the work


team work, distributed teams, etc.

track the work


progress, cost, etc.

Project plan contents


Resources available to the project
People and their availability, other resources.

Work breakdown structure (WBS)


Hierarchical decomposition of work into work packages, tasks, subtasks, etc.
Dependencies among tasks and/or task priorities
Usually more detailed (up to personal tasks) for the near term / next iteration

Task estimates
Duration (e.g., days) and/or effort (e.g., man x days or man x hours)

Task scheduling
Planned start/finish dates
Resources assigned/allocated (with % of time if not full time)

Tangible outputs for managers/customers to judge progress


Milestones - completion of important process activities (with planned dates)
Deliverables - project results delivered to customers (with planned dates)

A task (or activity) list


Activity

Estimated Duration
(days)

T1
T2
T3
T4
T5
T6
T7
T8
T9
T10
T11
T12

8
15
15
10
10
5
20
25
15
15
7
10

Dependencies

T1 (M1)
T2, T4 (M2)
T1, T2 (M3)
T1 (M1)
T4 (M5)
T3, T6 (M4)
T5, T7 (M7)
T9 (M6)
T11 (M8)

Shows task dependencies and the


critical path.
Allows determining the earliest
finish date.

An activity network
8 da y s

1 4/7 /03

15 da y s

M1

T3

T9

T1

5 da y s
2 5/7 /03

4/7 /03
star t

task duration

15 da y s

2 5/8/03

M4

T6

M3

4/8/03

M6

2 0 da y s

15 da y s

T7

T2
25/7 /03

10 da y s

M2

T4
1 8/7 /03
M5

critical
path
7 da y s
T11

10 da y s

M7

T5

5/9/03

11/8/03

M8

15 da y s
T10

10da ys

depends on tasks
T2 and T4

T12

2 5 da y s
Finish

T8
19/9/03

earliest finish

An activity timeline (Gantt chart)


4/7

11/7

18/7

2 5/7

1/8

8/8

1 5/8

22/8

2 9/8

5/9

12/9

1 9/9

folga

Star t
T4

shows schedule
against
calendar time

T1
T2
M1
T7
T3
M5
T8
M3
M2
T6

Can be
done
in
Microsoft
Project

T5
M4
T9
M7
T10
M6
T11
M8
T12
Finish

A staff allocation chart


4/7
Fred

1 1/7

18/7

2 5/7

1/8

8/8

15/8

2 2/8

2 9/8

5/9

1 2/9

19/9

T4
T8

T11
T12

Jane

T1
T3
T9

Anne

T2
T6

Jim
Mary

T10

T7
T5

Can also have partial-time (%) allocations

PROJECT ESTIMATION
(an integral part of project planning)
The primary purpose of software estimation is to determine
whether a projects targets are realistic enough to allow the
project to be controlled to meet them.
[Steve McConnell]

What is an estimate?
Its a prediction for some unknown variable (e.g., effort)
A single-point or an interval
With an associated probability or risk

70% Prediction Interval

There is a limit to how


well a project can go but
no limit to how many
problems can occur.
(Steve McConnel, Software
Estimation: Demystifying the Black
Art, 2006)

Fundamental estimation questions


Cost - How much will it cost to develop/perform?
In intellectual work, often determined by effort required
Schedule - When will it be done?
In intellectual work, often determined by effort required
and resources available
Effort - How many hours are needed to do it?
Depends on size and complexity of output, staff expertise
and productivity, etc.
Size - What will be the size of the output?
May be useful to estimate other variables

Exercise
To prepare for an exam, you have to read a text book and

answer the exercises at the end of each chapter


Size: 630 pages, 24 chapters, 10 exercises on average per

chapter, 400 words on average per page


Schedule: 1 week left before the exam
Availability: 4 hours available per day; not available at weekend

Can you do it?


Hint: the typical reading for learning speed
is 100-200 words per minute
If not, what remedial actions can you take?

How to make good estimates?


Use historical data, to eliminate bias!

Combine partial estimates (independent & unbiased),

for error compensation!


Part or
expert

Partial estimate
~N(i, i2)

Error
(i)

100

30%

50

20%

200

20%

150

30%

Sum of parts, or

500

i2= 14%

Average of experts

125

i2 = 14%

Basic estimation techniques


Algorithmic estimation
Historical information (e.g., speed) is used to estimate a variable
(e.g., effort) based on the value of other variable (e.g., size)

Expert judgment
Several experts on dev. technologies & app. domain are consulted,
each produces an estimate, the estimates are compared and
discussed, and the process iterates until an agreement is reached.
Estimation by analogy
.. with completed projects in the same domain or technology
Usually, its used a combination of techniques
Methods: agile, PROBE (next), Delphi, COCOMO, etc.

An estimation problem
You want to contract the construction of a new house

The builder needs to know the floor area, in m2, to

provide an estimate for the cost of construction


But its difficult for you to describe your needs in m2

How can you arrive at such an estimate?


Hint: You can tell the number, types and relative size
(medium, large, etc.) of the rooms you need. The builder has
historical data on room sizes.

Proxy Based Estimating (PROBE)


Historical size database

My new house (conceptual design):


Room Type

Actual room sizes


of different types
and total sizes for
many houses
statistics

(m2)

Relative Size Table


Room Type small medium large
Bedroom
12
20
30
Bathroom
7
11
18
Kitchen
9
18
27
Family room
16
23
46

Descript. N.Rooms

Bedroom
Suite
Bedroom
Children
Bathroom
Kitchen
Family room

Size estimate:

1
2
2
1
1

Relative size
(intuitive)
large
small
medium
medium
large

Average extra space for hallways


and closets: 15%

Room Type
Quant. Unit Size
Bedroom
1
30
Bedroom
2
12
Bathroom
2
11
Kitchen
1
18
Family room
1
46
Total (rooms)
Hallways and closets (15%)
Total (house)

Total size
30
24
22
18
46
140
21
161 m2

Builder avg. price per m2: 1500

Cost estimate:

241.500

PROBE: Applying to Software

Relative sizes (Lines of code, C++ functions)

Requirements:
Write a program to
calculate mean and
standard deviation.

Conceptual design
(parts (functions) needed)

Type

VS

VL

Calculation

2.34

5.13

11.3

24.7

54.1

Data

2.60

4.79

8.84

16.31

30.1

I/O

9.01

12.06

16.2

21.62

28.9

Logic

7.55

11.0

16.0

23.25

33.8

Set-up

3.88

5.04

6.56

8.53

11.1

Text

3.75

8.00

17.1

36.4

77.7

Object
Input_Data
Calc_Mean
Calc_SD
Print_Result
Linked_List
Total

Type
I/O
Calc
Calc
I/O
Data

main()
Input data

Linked list
Calc. mean
Calc. SD
Print result

Historial velocity
28 LOC/hour (avg)

Size
M
M
L
M
M

4h

N.Items
1
1
1
1
5

LOC
16
11
25
16
44
112

The PROBE method in brief


Applicable when the effort to develop something is historically

correlated with the output size (e.g. in pages), but its very difficult to
visualize at the begin of the project what that size will be
The idea is to use proxies: parts or building blocks (e.g., functions,

classes, components, use cases, chapters) that can be visualized


and intuitively sized (in T-shirt sizes) early in development
Historical data of parts built so far is used to convert intuitive sizes

into numerical values in the desired unit (e.g., pages)


Historical productivity data (e.g., pages/hour) is used to arrive at an

effort estimate (hours)


Data on resources available (e.g., man-hours per week) can be used

to estimate calendar days needed or completion date

PROJECT MONITORING
AND CONTROL (PMC)

Main PMC questions


Is the project on schedule / ahead of schedule / behind

schedule? Why?
Is the project costing more/less than planned? Why?
Are any externaly visible milestones or deliverables in

danger? Why?
What remedial actions can be taken?
Minor actions without need of replanning
Internal replanning without affecting externally visible results
Major replanning and project renegotiation, otherwise

Earned value management (EVM)


Objective method to measure project performance in terms of

scope, time/schedule and cost [PMBOK]


Intermediate definitions
Planned Value (PV) = Planned % Complete * Project Budget
aka Budgeted Cost of Work Scheduled (BCWS)

Earned Value (EV) = Actual % Complete * Project Budget


aka Budgeted Cost of Work Performed (BCWP).

Actual Cost (AC)


aka Actual Cost of Work Performed (ACWP)

Main performance measures


Schedule variance: SV = EV - PV
Schedule Performance Index: SPI = EV/PV
(ideally 1)
Cost Variance: CV = EV - AC
Cost Performance Index: CPI = EV/AC (ideally 1)

EVM Charts

Projected
end data

Source:
http://en.wikipedia.org/wiki/Ea
rned_value_management

EVM in the Team Software Process (TSP)


Simplified rules for software development teams

Simplifications/Rules:
(actual/budgeted) Cost = (actual/planned) Effort
Value is earned only when tasks are completed (no partial credit)
In computing CPI, only completed tasks are considered

Resulting formulas:
SPI =

Planned efffort of tasks completed


Planned efffort of tasks that should be completed

Planned effort of tasks completed


CPI =
Actual effort of tasks completed
Act % =

Planned efffort of tasks completed


Planned efffort of all tasks

% =

Planned efffort of tasks that should be completed


Planned efffort of all tasks

Example
Task

Planned
effort

Planned
finish

Actual
effort

Actual
finish

Status

T1

80

15/9/2011

100

20/9/2011

Finished

T2

50

25/9/2011

40

T3

20

10/10/2011

50

T4

40

20/10/2011

Started
30/9/2011

Finished
Not started

Compute SPI and CPI as of 3/10/2011, using the TSP rules

+
SPI =
= ,
+

CPI =

+
= ,
+

= ,

At the current rythm, poject


will take more 30% calendar
time than planned

= ,

At the current rythm, the


project will cost more 50% than
planned

References and further reading


PMBOK - Project Management Body of Knowledge

(www.pmi.org)
Steve McConnell, Software Estimation: Demystifying

the Black Art, Microsoft Press, ISBN: 978-0735605350,


2006
Ian Sommerville, Software Engineering, 9th edition
Chapters 22, 23

PSP: A Self-Improvement Process for Software

Engineers, Watts S. Humphrey, Addison-Wesley, 2005


Describes PROBE method

Introduction to the Team Software Process, Watts S.

Humphrey, Addison-Wesley, 2000


Describes earned value tracking and weekly status reporting

Das könnte Ihnen auch gefallen