CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build:...

21
CSC444F'06 Lecture 4 1 The Capacity Constraint

Transcript of CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build:...

Page 1: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 1

The Capacity Constraint

Page 2: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 2

Release Planning

• What to Build:– have a big list, choose the most important from it

• By when to build it:– not too early that we flood our customers with

releases and the overhead kills us

– not too late that they think us unresponsive

• Using how many people– usually fairly fixed for the next release.

• For the next release, determine– What to build,

– By when to build it,

– Using how many people.

Page 3: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 3

The Capacity Constraint

• A fundamental constraint that governs all planning activity.

A geometric analogy

1 person-day

days

persons

Page 4: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 4

A geometric analogy

The Capacity Constraint

• A fundamental constraint that governs all planning activity.

A certain requirement

A certain capacity

Page 5: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 5

The Capacity Constraint

• A fundamental constraint governs all planning activity.

It’s ‘gotta all fit!

Page 6: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 6

Release Planning

• What to build F• By when to build it T F N x T• Using how many people N

• Need to build an initial plan that respects the capacity constraint

• Need to continuously update the plan to maintain its adherence to the capacity constraint.

Page 7: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 7

Most Common Problem

• Comes from either– not knowing– knowing but hoping for the best (Yourdon Death March)

(can happen initially or as we go)

Page 8: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 8

Dealing with Issues as they Arise

Developer leaves the team

Add time Cut features

Both

Page 9: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 9

Other Happenings feature expansion

developer returns

Page 10: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 10

Organizational Issues

• Management must appreciate that software development carries with it certain inherent risks.

• The business of a software organization is to manage and adapt as possibilities continuously become reality.

• Ranting and raving is unproductive

• With good data, good managers will make good decisions.

Page 11: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 11

The Quantitative Capacity Constraint

• Post-Facto, the following relationship must hold.– But, it requires careful definition.

We define carefully so that we know what it is we are trying to estimate, and how to compare actuals against estimates for post-mortem.

Page 12: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 12

Number of Workdays: T

• The number of full-equivalent working days for fork to dcut.• Subtracts

– Weekends

– Statutory holidays

– “Company Days”

• Subtracts anything we know in advance that nobody is expected to work.

Page 13: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 13

Developer Power: N

• The average number of dedicated developers per workday working during the T-day period.

• Dedicated Developer?

Page 14: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 14

Work Time & Dedicated Time

• Work Time or Body Time– Defined as 8 hours per workday

• Excludes weekends, stat. holidays, vacation entitlement.

• E.g., 9-to-6 with 1 hour for lunch.

• Dedicated Time– Uninterrupted hour equivalents.– Time dedicated to adding new features to the release.

• Uninterrupted Time– 4 hrs with 30 min. of constant interruptions

• Not 3.5 hrs of dedicated uninterrupted time – more like 2

– 2 hrs with NO interruptions at all

Page 15: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 15

Examples of Dedicated Losses

• Maintenance (tracking down and fixing defects) on previous releases

• Other simultaneous projects• Team-leader duties (& helping others)• Meetings• Training• Unexpected, non-made-up days off (e.g., sick days)• Sales/marketing support• Loss of flow due to interruptions

Page 16: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 16

Measuring N

• Assume each developer understands the concept of a dedicated uninterrupted hour.

• Get each of the n developers to record how many dedicated uninterrupted hours they spent in total during the coding phase.

• hi is what’s in the time tracking system for the ith developer.

T

hN

n

ii

81

Page 17: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 17

Attributing N

• di is the number of days available during the coding phase

• vi is the number of vacation days they took during the coding phase

• hi is as before

Substitute to get back to:

T

wtN

n

iii

1

iii vdt i

ii t

hw

8

T

hN

n

ii

81

Page 18: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 18

Example

• Bob called in sick for 2 days: accounted for in h• Bob took an afternoon off, but worked on the weekend to make up

for it: accounted for in h

30535

5

35

39

bobbobbob

bob

bob

vdt

v

d

T

5.0308

120

8

120

bob

bobbob

bob

t

hw

h

Page 19: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 19

Features

K

kkfF

1

fk = dedicated hours / 8 it took to code the kth feature.

Page 20: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 20

Post-Mortem

• Imagine a time-tracking system that could track– hi,k,d

• dedicated (uninterrupted) hours spent– by the ith developer

– on the dth day

– doing coding work on the kth feature

• each such quantum would appear on both sides of F= N x T constraining them to be equal.

• See section 5.10 in book for proof.

Page 21: CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it.

CSC444F'06 Lecture 4 21

Example Release Plan

• Sample Deterministic Release Plan