63
Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Embed Size (px)

Citation preview

Page 1: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Estimation – Software Projects

project planning - what to doproject control make sure it’s done rightestimation of detailed system design

Page 2: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Planning Process

• determine requirements from objectives

• specify work activities

• plan project organization

• develop schedule

• develop resource plan and budget

• establish control mechanisms

each project unique

Page 3: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Determine Requirements

Specify work activities

STATEMENT OF WORK:– product descriptions– constraints– schedule requirements– budget limits– roles & responsibilities

Page 4: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

WORK DEFINITION

• once objectives set,

TRANSLATE INTO WORK ELEMENTS

• what needs to be done– easy to overlook some, or duplicate

• WORK BREAKDOWN STRUCTURE– divide project into major work

categories• subdivide

Page 5: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Work Breakdown Structure

w hat's been doneP A C K A G E

needs doingP A C K A G E

libraryTA S K

searchP A C K A G E

internetTA S K

researchC A TE G O R Y

w riteP A C K A G E

w ritingC A TE G O R Y

run offP A C K A G E

printingC A TE G O R Y

w rite paperP R O JE C T

Page 6: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Work Breakdown Structure• level 1 - overall project

• level 2 - category– major project sub-element

• level 3 - task– Sub-element of category

• level x - subtask

• level bottom - WORK PACKAGE– specific activity

Page 7: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Detailed Task List

• WBS can be focused on– PRODUCT– FUNCTION– etc.

• when work packages identified,– estimate requirements by resource– WHAT IS NEEDED– WHEN– WHAT MUST PRECEDE

Page 8: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Work Breakdown Structure

• needs to be checked, approved

• provides– good definition of work– how long it will take– resources required– estimated costs

• planning & control– assignments, budget, basis for control

Page 9: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Work Packages• chunk of required work

• relatively small cost and short duration

• include– summary of work– inputs required (predecessors)– manager responsible– product specifications– resources required (including budget, dates)– deliverables

Page 10: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

list of work packages(activities)

system designactivity predecessor timeA2 identify req’d info A1 10 daysA31 basic software A2 3 daysA32 data access req’d A2 1 dayA33 vendor softwareA2 1 day

Page 11: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Work Packages

• need to identify start and finish events for each work package

• related tasks without definable end results (overhead & management; inspection; maintenance) should be included as task-oriented work packages for COST purposes

Page 12: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Project Organization

• identify resources required by work package

• RESPONSIBILITY MATRIX– which functions do what work packages– cost account structure

• start & finish date• budget• responsibilities

Page 13: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Project Management System

• lists activities on one axis

• lists people on other axis

• shows who is– primarily responsible– also involved– has approval authority– must be notified

Page 14: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Scheduling

• BASIS for – RESOURCE ALLOCATION– ESTIMATED COST– plan for monitoring & control

• EVENTS or MILESTONES– when activity completed (or started)– INTERFACE EVENT

• when responsibility passes

Page 15: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Kinds of Schedules

• project schedules– project master schedule - top

management– overview rather than detail

• task schedules– specific activities required– more detail

Page 16: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Resource Plans & Budgets

• Activities often compete for the same resources– hire more– reschedule

• Resource plans show critical resource schedules– bottlenecks around which schedule is

built

Page 17: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Charts

visual aids• Gantt Charts

– plan - activities by time (work in outline)– implement - fill in as work done– doesn’t show relationships well– very good at seeing where things are (IF

ACCURATE)

• Expense Charts - cumulatively graph $ spent

Page 18: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Recap

• Planning - key to accurate bidding• need to know what it will cost in order to know how to

price• need to know resources required, complex projects take

a long time• MIS projects

– activities, predecessor relations, resource use

Page 19: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Software Estimation

The Mythical Man-Month:

Essays on Software Engineering

Frederick P. Brooks, Jr. (U N. Carolina)Addison-Wesley: 1975

Page 20: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Programming Products

• Program– usable by author

• Programming System– usable by anyone

• Programming Product– tested, documented, maintained– 3 times the effort of a program

• Programming System Product

Page 21: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

causes of project failure

• LACK OF CALENDAR TIME the most common– estimating techniques are poor– assume that effort = progress

• you can’t just throw people at a problem

– poor monitoring of progress

• SCHEDULING– tendency to assume all will go well

Page 22: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

impact of adding people

• partitionable project– marginal contribution declines

• non-partitionable project– no benefit at all from adding people

• complex interactionsmust separately coordinate each task with all others

– first few have declining marginal contribution– after some number, adding people slows down

project

Page 23: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Software Project Activities

• testing is the activity most difficult to predict– planning 1/3 of project– coding 1/6 of project– component testing 1/4 of project– system testing 1/4 of project

• most projects are on schedule UNTIL TESTING• Brooks’s Law: Adding manpower

to a late project makes it later

Page 24: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

programmer productivity

• there is wide variation in productivity between good and fair programmers

• Brute force failures– costly OS/360 TSS– slow Exec 8 SAGE– inefficient Scope 6600– nonintegrated systems Multics

Page 25: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

impact of adding programmers

• if a 200 person project has its best 25 people as managers– fire the 175– make the 25 managers programmers

• shouldn’t have more than 10 people on a team• OS/360 had 1000 working on it, 5000 man-years• small teams infeasible; use surgical teams

Page 26: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

surgical team

• surgeon chief programmer• copilot share thinking, evaluation• administrator boring details• editor references, documentation• secretaries (2)• program clerk technical records• toolsmith editing, debugging• tester develop test cases• language lawyerexpert on language

Page 27: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

conceptual integrity

• better to reflect one set of design ideas than to add independent and uncoordinated features & improvements

• purpose of programming system is to make computer easy to use

• simplicity & straightforwardness come from conceptual integrity

Page 28: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

conceptual integrity example

• OS/360– architect manager: said his 10 person team could write

specifications in 10 months (3 months late)– control program manager: his 150 people could get it done in

7 months, & if his people didn’t do this, they would have nothing to do

– architect manager: control program people would take 10 months, do a poor job

– Brooks gave to control program group– took 10 months, plus added year to debugging

Page 29: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

estimating programming time• duration is exponential (bigger jobs take more than

proportionally longer)– analogous to sprint 100 yards, running 1 mile

effort = K x (number of instructions)1.5

• one manager noted programming taking twice as long as estimate– only getting 20 hours of work/week– machine down, divert to emergencies,

meetings, paperwork, sick

Page 30: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

programming estimation

• the more interactions, the less productivity– interaction = coordination with others

• high level languages increase productivity– now tools should almost eliminate the

programming component, but there are other activities (the more unpredictable ones)

Page 31: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

(prototyping)

• in most projects, the first system built is barely usable

• PLAN THE SYSTEM FOR CHANGE– modularization– subroutining– interfaces– documentation of interfaces– high-level languages

Page 32: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

software estimation

Charles R. SymonsSoftware Sizing and Estimating: Mk II FPA

Wiley [1991]

Page 33: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

software production cycle

• DESIGN

• DEVELOPMENT

• production not hard

• MAINTENANCE

recognized as a difficult task

Page 34: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

software production cycle

• SYSTEM SIZE a variable in – DESIGN– DEVELOPMENT– MAINTENANCE

• components of system size– amount of information processed– technical requirements– performance drivers (objectives)

Page 35: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

objectives

• COST minimization

• TIME minimization

• QUALITY assure that product

performs to specifications

Page 36: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

size measures

• source lines of code+ concrete measure- what lines?- logical or physical?- housekeeping?- different across languages

• most commonly used• some economy of scale

Page 37: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Albrecht’s Function Point Analysis MethodAIMS

– consistent measure– meaningful to end user

• function points should be easier to understand than lines of code

– rules easy to apply– Can estimate from requirements

specification– independent of technology used

Page 38: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Albrecht’s system

• count – external user inputs– enquiries– outputs– master files delivered (internal & external)

• get points for every useful activityfunction points=

information processing size x technical complexity adjustment

Page 39: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Albrecht’s System

complexity tables– data elements referenced

• 1-4• 5-15• 16 or more

– file types referenced• 0 or 1• 2• 3 or more

table of SIMPLE, AVERAGE, COMPLEX

Page 40: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Albrecht complexity

1-4 data 5-15 data 16+ data

0 or 1 filetypes

SIMPLE SIMPLE AVERAGE

2 filetypes

SIMPLE AVERAGE COMPLEX

3+ filetypes

AVERAGE COMPLEX COMPLEX

Page 41: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Albrecht functional multipliers

SIMPLE AVERAGE COMPLEX

external input x 3 x 4 x 6external output x 4 x 5 x 7logical internal file x 7 x 10 x 15ext interface file x 5 x 7 x 10external inquiry x 3 x 4 x 6

add up, get total unadjusted function points

Page 42: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Albrecht Technical Complexity Adjustment14 general application characteristics

data communications on-line update distributed functionscomplex processing performance re-useabilityheavily used configuration installation ease transaction rateoperational ease on-line data entry multiple sitesend user efficiency facilitate change

not present = 0 average influence = 3

insignificant influence = 1 significant influence = 4

moderate influence = 2 strong influence = 5

TCA = 0.65+(0.01x(total degree of influence))

Page 43: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Symons’ complaints

• Albrecht method– alternative counting practices– weights used are questionable– large systems under-weighted

• (XEROX 1985: rapid drop in productivity with increasing system size)

– range of points too narrow

• but MUCH BETTER THAN SLOC

Page 44: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Mk II Function Point Analysis• modification of Albrecht• use same Technical Complexity

Adjustment• extend general application

characteristics to 19 or more• weights adjusted• Information Processing Size changed

the most

Page 45: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

logical transactions

logical transaction = – unique input/process/output

combination triggered by unique event of interest to the user

– or need to retrieve information• create a customer• update an account• enquiry• produce monthly summary report

Page 46: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

unadjusted function points

UFPs = WI x # input data element types

+ WE x # entity types referenced

+ WO x # output data element types

weights determined by calibrationdetermine UFPs for system by adding UFPs for all system

logical transactionsassumes work directly proportional to # of data elements;size of process proportional to # data entries;weights meaningful, obtainable

Page 47: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

complexity adjustment

Albrecht’s method with 2 modifications:– extend general application list to 19

• interfaces to other applications• special security features• direct access requirement for third parties• special user training facilities• documentation requirements

TCA = 0.65 + C x (total degree of influence)where C is obtained by calibration

Page 48: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

calibration

by CALIBRATION Symons means fit the company’s data

regressindustry averages:

WI 0.58

WE 1.66

WO 0.26

Page 49: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Mk II FPA summary

• obtain general understanding of the system• construct a model of primary entities• identify logical transactions• score degree of influence of all 19 general

application characteristics (plus client specific)• obtain total project work-hours, calibrate• calculate function points

Page 50: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

comparison

SLOC Albrecht Mk II FPA

accepted standard no yes yesclarity potentially some subjective

objectivestructured? no no yeseasy to use? yes no noautomatable? yes no yesuse for estimating? sometimes yes yes

Page 51: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Estimation Example

SLOCFunction Point

Page 52: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Source Lines of Code

• NEED DATABASE of past experienceAVERAGES effort 33 months

cost $361 (thousand)

documentation 1194 pages

errors 201

defects 52

people 4

KLOC 20.543

Page 53: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Implementing LOC

• Estimate structured lines of code10,000

• averages proportional to LOC 10/20.543 = 0.487 effort 33 months 0.487 = 16cost $361 thou 0.487 = $177,000documentation 1194 pages 0.487 = 581 pp.errors201 0.487 = 98defects 52 0.487 = 25people 4 0.487 = 2 people

Page 54: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Function Point Calculation

1 - get count-totalnumber of features times complexity

2 - get Fi

rate 14 factors (0-5), total3 - FP = count-total [0.65 + 0.01 Fi ]

4 - multiply historical averages (623) per FP by this FP

Page 55: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

1 - get count total

Complexity Weightingsimple average complex

product# user inputs __ 3 + __ 4 + __ 6 = ___# user outputs __ 4 + __ 5 + __ 7

= ___ # user inquiries __ 3 + __ 4 + __ 6 = ___# files __ 7 + __ 10+__ 15 = ___# external interfaces __ 5 + __ 7 + __ 10

= ___

Page 56: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

1 - get count-total

Bank accounts record system involving36 user inputs simple complexity5 user outputs average complexity20 user inquiries simple complexity40 files accessed simple complexity3 external interfaces average complexity

Page 57: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

1 - get count-total

Complexity Weightingsimple average complex product

36 user inputs 36 3 + __ 4 + __ 6 = 108

5 user outputs __ 4 + 5 5 + __ 7 = 25

20 user inquiries 20 3 + __ 4 + __ 6 = 6040 files 40 7 + __ 10+__ 15 = 2803 external interfaces __ 5 + 3 7 + __ 10 =

21TOTAL 494

Page 58: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

2 - get Fi

F1 require reliable backup & recovery? Significant 4F2 data communications required? Moderate 2F3 distributed processing functions? Significant 4F4 performance critical? Average 3F5 run on existing, heavily utilized environment? Essential 5F6 require on-line data entry? Essential 5F7 on-line data entry from multiple operations? Incidental 1F8 master files updated on-line? No influence 0F9 inputs, outputs, files, or inquiries complex? Incidental 1F10 internal processing complex? Incidental 1F11 code designed to be reusable? Average 3F12 conversion and installation included in the design?

Average 3F13 system designed for multiple installations in different orgs? No

influence 0F14 application designed to facilitate change and ease of use? No

influence 0 = 32

Page 59: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

3- Calculate FP

FP = count-total [0.65 + 0.01 Fi ]

= 494 [0.65 + 0.01 32 ] = 479.18

Page 60: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

4- Multiply by Historical

• Estimated FP 479.18• averages proportional to avg 479.18/623 =

0.77effort 33 months 0.77 = 25.4cost $361 thou 0.77 =$278,000documentation 1194 pages 0.77 = 918 pp.errors 201 0.77 = 155defects 52 0.77 = 40people 4 0.77 = 3 people

Page 61: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Scheduling

• “Coding is 90% finished half of the coding time”• “Debugging is 99% complete most of the time”• MILESTONES: concrete eventsstudies of government projectsestimates carefully updated every 2 weeks before activity

starts rarely changeduring activity, overestimates dropunderestimates don’t change until into activity

Page 62: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Control

• When delay is first noticed,the tendency is to not report it

• STATUS INFORMATION

what is going on• ACTION INFORMATION

learning this causes something to be done

• KEY: know when which case applies

Page 63: Estimation – Software Projects project planning - what to do project control make sure it’s done right estimation of detailed system design

Summary

• Estimation of duration & cost key to sound project decision making

• Estimating software development very difficult– Can improve by

• Keeping records• Using productivity-enhancing methods• Use more off-the-shelf software

– Estimation methods can become accurate if systematically applied