tutorial: estimation and planning examples · overview task integration example pert/cpm graph...

33
Tutorial: Estimation and Planning Examples Friday, October 25 th

Upload: vodat

Post on 29-Sep-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Tutorial: Estimation and Planning Examples

Friday, October 25th

Page 2: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Overview

Task Integration ExamplePert/CPM GraphGantt ChartCOCOMOQuick SDL refresher

Page 3: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Task Integration

Modules taken from design docIntegration tasks taken from architecture docShould reinforce architecture chosen

Be wary of odd dependencies

Page 4: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Integration Task Diagram

Page 5: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Task Integration Matrix

Page 6: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Test Plan Notes

Give reasons for why test plan was chosen

Page 7: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Creating Pert/CPM Graph

Integration task diagram often shows what tasks can be done concurrentlyIn real world setting, priorities not necessarily follow ITG

This is why we need schedule priority chartsCertain tasks may need to be done by certain people (domain knowledge, etc)

Page 8: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Vaguely Familiar Ground

Page 9: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

CPM Graph

Page 10: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Earliest Completion Times

Page 11: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Latest Completion Times

Page 12: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Fixed CPM Graph

Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Missing labels: [0](0) [0](3) [0](5)
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Troy Gonsalves
Page 13: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Coming up with Gantt Chart

Try to pick reasonable timelinesUsually earliest completion time is chosenFactor in vacations, breaks, etc

Make note of critical pathHelpful to indicate on Gantt chart

Try to evenly divide up workload

Page 14: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Gantt Chart Example 1

Page 15: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Gantt Chart Example 2

Page 16: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Why are we doing this?Poor management is the downfall of many software projects.Delivered software may be late, unreliable, cost several times the original estimates and often exhibits poor performance characteristics.Software project management is different from other engineering management.Product is intangible to a certain extent.Most software projects are new and technically innovative. (myth?)Good management cannot guarantee project success but bad management usually results in project failure.

Page 17: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

COCOMO

COnstructive COst MOdelCreated by Barry Boehm in 1981Essentially: EFF = a * SIZEb

Based on a large number of projects from the 70’sVery simple estimation tool which may or may not work depending on how closely project fits in with original study

Page 18: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Estimating Is Hard To Do

Page 19: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Basic IdeaSmall Projects

Small teams (2-3 people)Easy to have mental modelFewer things in the way of completionEFFORT = a * SIZE + b

Large ProjectsThe more people there are, the harder it becomesEFFORT = a * SIZEb

a and b are scaling factors

Page 20: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Project Types

OrganicRoutine projectWell understood domainTeam works well and efficiently togetherProject expected to run smoothlyTypically a smaller system

Page 21: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Project Types

EmbeddedDifficulties expectedProject that is hard (control software for a nuclear plant, or spacecraft)Team has little experience in domainNew or inexperienced teamTend to be large projects with lots of constraints

Page 22: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Project Types

Semi-DetachedIn the middleComplex system, but something the company is familiar withTeams may be made up of experienced and inexperienced membersSystem not huge, but not small either

Page 23: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

What is a and b?

OrganicPerson months = 2.4 * KDSI1.05

Semi-DetachedPerson months = 3.0 * KDSI1.12

EmbeddedPerson months = 3.6 * KDSI1.20

Page 24: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Slightly More Advanced

Add in an adjustment factorEFFORT = EAF * a * SIZEb

Adjustment factors cover wide range of development aspectsFactor all adjustment factors together to get EAF

Page 25: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Slightly More Advanced

The factors a and b differOrganic

a = 3.2, b = 1.05

Semi-Detacheda = 3.0, b = 1.12

Embeddeda = 2.8, b = 1.20

Page 26: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher
Page 27: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

How to use COCOMO

Simply: Plug and ChugWhat if it doesn’t work?

Play with adjustment factorsTweak a and b to make the equation fit the resultUse a more complex metric

Page 28: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher
Page 29: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher
Page 30: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher
Page 31: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

In RealityEstimating comes with experienceUsing something like Function Points to come up with code size doesn’t really work

(personal belief)

COCOMO is too simple and too old to really be of use

Good starting point, more advanced models availableTweaking formulas might yield good results

Page 32: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Quick Look At SDL

Page 33: Tutorial: Estimation and Planning Examples · Overview Task Integration Example Pert/CPM Graph Gantt Chart COCOMO Quick SDL refresher

Credits

Lots of COCOMO info taken from http://www.cs.unc.edu/~stotts/COMP145/cocomo.html

CPM slide “Why Are We Doing This” taken from another presentation (can’t find URL)