planning a software project. project planning2 agenda zbackground zeffort estimation zschedule and...

Download Planning a Software Project. Project Planning2 Agenda zBackground zEffort estimation zSchedule and resource estimation zQuality Planning zRisk management

Post on 18-Jan-2016

213 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Planning a Software Project

    Project Planning

  • AgendaBackgroundEffort estimation Schedule and resource estimationQuality PlanningRisk managementProject monitoring plans

    Project Planning

  • Software ProjectGoal: Build a software system to meet commitments on cost, schedule, qualityWorldwide - many projects failone-third are runaways with cost or schedule overrun of more than 125%

    Project Planning

  • Project FailuresMajor reasons for project runawaysunclear objectivesbad planningno project management methodologynew technologyinsufficient staffAll of these relate to project managementEffective project management is key to successfully executing a project

    Project Planning

  • Why improve PM?Better predictability leading to commitments that can be metLower cost through reduced rework, better resource mgmt, better planning,..Improved quality through proper quality planning and controlBetter control through change control, CM, monitoring etc.

    Project Planning

  • Why improve PM .Better visibility into project health and state leading to timely interventionBetter handling of risks reducing the chances of failureAll this leads to higher customer satisfactionAnd organization improvement

    Project Planning

  • The Project Mgmt ProcessHas three phases - planning, monitoring and control, and closurePlanning is done before the much of the engineering process (life cycle, LC) and closure after the processMonitoring phase is in parallel with LCWe focus on planning; monitoring covered through its planning

    Project Planning

  • Project PlanningBasic objective: To create a plan to meet the commitments of the project, I.e. create a path that, if followed, will lead to a successful projectPlanning involves defining the LC process to be followed, estimates, detailed schedule, plan for quality, etc.Main output - a project management plan and the project schedule

    Project Planning

  • Key Planning TasksEstimate effortDefine project milestones and create a scheduleDefine quality objectives and a quality planIdentify risks and make plans to mitigate themDefine measurement plan, project-tracking procedures, training plan, team organization, etc.

    Project Planning

  • Effort Estimation

    Project Planning

  • Effort EstimationFor a project total cost and duration has to be committed in startRequires effort estimation, often in terms of person-monthsEffort estimate is key to planning - schedule, cost, resources depend on itMany problems in project execution stem from improper estimation

    Project Planning

  • Estimation..No easy way, no silver bulletEstimation accuracy can improve with more information about the projectEarly estimates are more likely to be inaccurate than later More uncertainties in the startWith more info, estimation becomes easier

    Project Planning

  • Estimation accuracy

    Project Planning

  • Effort Estimation Models..A model tries to determine the effort estimate from some parameter valuesA model also requires input about the project, and cannot work in vacuumSo to apply a model, we should be able to extract properties about the systemTwo types of models - top-down and bottom-up

    Project Planning

  • Effort Estimation Models

    Project Planning

  • Top down estimationFirst determines the total effort, then effort for componentsSimple approach estimate effort from size and productivityGet the estimate of the total size of the softwareEstimate project productivity using past data and project characteristics Obtain the overall effort estimate from productivity and size estimatesEffort distribution data from similar project are used to estimate effort for different phases

    Project Planning

  • Top-down EstimationA better method is to have effort estimate as a function of size using: Effort = a * size bE is in person-months, size in KLOCIncorporates the observation that productivity can dip with increased sizeConstants a and b determined through regression analysis of past project data

    Project Planning

  • COCOMO ModelUses size, but adjusts using some factorsBasic procedureObtain initial estimate using sizeDetermine a set of 15 multiplying factors from different project attributesAdjust the effort estimate by scaling it with the final multiplying factor

    Project Planning

  • COCOMO..Initial estimate: a * size b ; some standard values for a, b given for diff project typesThere are 15 cost driver attributes like reliability, complexity, application experience, capability, Each factor is rated, and for the rating a multiplication factor is givenFinal effort adjustment factor is the product of the factors for all 15 attributes

    Project Planning

  • COCOMO Some cost drivers

    Project Planning

  • COCOMO effort distributionEffort distribution among different phases is given as a percent of effortEg. For medium size product it isProduct design 16%Detailed design 24%Coding and UT 38%Integration and test 22%

    Project Planning

  • Bottom-up EstimationAn alternate approach to top-downEffort for components and phases first estimated, then the totalCan use activity based costing - all activities enumerated and then each activity estimated separatelyCan group activities into classes - their effort estimate from past data

    Project Planning

  • An Estimation ProcedureIdentify programs in the system and classify them as simple, medium, or complex (S/M/C)Define the average coding effort for S/M/C Get the total coding effort.Use the effort distribution in similar projects to estimate effort for other tasks and totalRefine the estimates based on project specific factors

    Project Planning

  • Scheduling and Staffing

    Project Planning

  • Project ScheduleA project Schedule is at two levels - overall schedule and detailed scheduleOverall schedule comprises of major milestones and final dateDetailed schedule is the assignment of lowest level tasks to resources

    Project Planning

  • Overall ScheduleDepends heavily on the effort estimateFor an effort estimate, some flexibility exists depending on resources assignedEg a 56 person-months project can be done in 8 months with 7 people, or 7 months with 8 peopleStretching a schedule is easy; compressing is hard and expensive

    Project Planning

  • Overall Scheduling...One method is to estimate schedule S (in months) as a function of effort in PMsCan determine the fn through analysis of past data; the function is non linearCOCOMO: S = 2.5 E 3.8 Often this schedule is checked and corrected for the specific projectOne checking method square root check

    Project Planning

  • Determining Overall Schedule from past data

    Project Planning

    Chart1

    149

    163

    120

    78

    125

    204

    184

    59

    237

    112

    154

    182

    189

    189

    321

    189

    189

    175

    209

    119

    321

    287

    217

    161

    122

    221

    60

    98

    47

    200

    123

    108

    172

    58

    113

    76

    84

    1

    Actual Elapsed Days

    Schedule (Days)

    Effort in person-days

    Sheet1

    Actual Effort Vs Actual Schedule

    Sl.NoTotal Actual Effort(phrs)Total Actual Effort(days)Total Actual Effort(days)Actual Elapsed DaysLog(Actual Effort)Log(Elapsed days)

    17355865.29411764718651492.942.17

    24185492.35294117654921632.692.21

    32245264.11764705882641202.422.08

    46876808.9411764706809782.911.89

    53627426.70588235294271252.632.10

    6134171578.470588235315782043.202.31

    75343628.58823529416291842.802.26

    81556183.0588235294183592.261.77

    94605541.76470588245422372.732.37

    111269149.29411764711491122.172.05

    121500176.47058823531761542.252.19

    141765207.64705882352081822.322.26

    151667196.11764705881961892.292.28

    162338275.05882352942751892.442.28

    17117411381.294117647113813213.142.51

    181333156.82352941181571892.202.28

    192021237.76470588242381892.382.28

    203004353.41176470593531752.552.24

    211495175.88235294121762092.252.32

    2221932582581192.412.08

    233846452.47058823534523212.662.51

    245126603.05882352946032872.782.46

    252849335.17647058823352172.532.34

    26127241496.941176470614971613.182.21

    2791671078.470588235310781223.032.09

    2887061024.235294117610242213.012.34

    2973886.823529411887601.941.78

    301521178.9411764706179982.251.99

    3137343.882352941244471.641.67

    33110911304.823529411813052003.122.30

    344585539.41176470595391232.732.09

    353055359.41176470593591082.562.03

    367700905.88235294129061722.962.24

    381561183.6470588235184582.261.76

    3910541241241132.092.05

    4073386.235294117686761.941.88

    411867219.6470588235220842.341.92

    11

    y = 4.0513x0.6011

    Sheet1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    Actual Elapsed Days

    Actual effort (Days)

    Project Schedule (Days)

    Sheet2

    Sheet3

  • Determining MilestonesWith effort and overall schedule decided, avg project resources are fixedManpower ramp-up in a project decides the milestonesManpower ramp-up in a project follows a Rayleigh curve - like a normal curveIn reality manpower build-up is a step function

    Project Planning

  • Manpower Ramp-up

    Project Planning

  • Mi