# Presentation: 813726

## Disciplined Software Engineering Lecture #5

**Software Engineering Institute**
**Carnegie Mellon University**
**Pittsburgh, PA 15213**
**Sponsored by the U.S. Department of Defense**

## Lecture #5 Overview - Resource and Schedule Planning 

**Resource and schedule planning overview**
**The planning process**
**Resource estimating**
**Schedule estimating**
**Earned value tracking**

## Why Resource and Schedule Plans Are Needed

**Provides a business basis for doing the work**
**establishes the price**
**sets the schedule**
**permits agreement on the work **
**Establishes a management framework **
**defines commitments**
**helps groups coordinate their work**
**allows status tracking**

## Estimating Accuracy

**Planning is a skill that must be developed**
**the PSP helps to build planning skill **
**even simple plans are subject to error**
**unforeseen events**
**unexpected complications**
**just plain mistakes**
**The best strategy is to plan in detail**
**identify the recognized tasks**
**estimate based on similar experience**
**make judgments on the rest**

## An Estimating Error Example

**When estimating in parts, the total error is less than the sum of the part errors **
**errors tend to balance **
**this assumes no common bias**
**For a 1000 hour job**
**with estimating accuracy of + or - 50% **
**the estimate range is from 500 to 1500 hours**
**In 25 parts, each with 50% error**
**the total would be 1000 hours as before**
**the estimate range is from 900 to 1100 hours**

## Combining Individual Errors

**In combining individual estimates**
**combine the estimated values**
**add the estimate variances **
**  **
**With 25 estimates**
**each estimate averages 40 hours**
**the standard deviation is 50% or 20 hours**
**the variance for each is 400**
**the variances thus total 10,000**
**the combined standard deviation is the square root of the variance, or 100 **
**the estimate range is thus 900 to 1100 hours**

## Slide 7

## Slide 8

## The Planning Process 

## Planning Development Time

- Obtain
- historical data

- Are there sufficient
- data for  a regression
- calculation?

- Calculate historical
- productivity in LOC
- per hour

- Calculate the
- hours required

- Calculate the shortest  and
- longest likely times

- Are there sufficient  estimate
- data for  a regression
- calculation?

- Do the regression
- calculation on actual
- object  LOC
- and actual hours

- Calculate the time
- required

- Calculate the prediction
- interval

- Do the regression
- calculation on  estimated
- object LOC and actual
- hours

- Calculate the time
- required

- Calculate the prediction
- intervals

**LOC Size Estimate **

**No**

**Yes**

**No**

**Yes**

**Time Estimate**
**       **

**Time Estimate**

**Time Estimate**

- Estimating
- Choice C

- Estimating
- Choice B

- Estimating
- Choice A

## The Resource Planning Process

**Start with a size estimate**
**Identify available data**
**   **
**Use regression when you have 3+ sets of data that correlate.**
**Use data for estimated LOC to actual hours where available. **
**Calculate the prediction interval.**

## Regression in Resource Planning

**The regression method for resource planning is  identical to that used for size estimating.**
**If multiple estimates are combined from the same data**
**combine the parts, i.e, if 3 LOC estimates were made, combine their object LOC as input to one resource estimate**
**do the same for the prediction interval **

## Example of Combining Resources

**Start with 3 estimates**
**A -  45 hours + or - 10**
**B -  18 hours + or - 5**
**C -  85 hours + or - 25**
**The combined estimate is**
**total = 45 + 18 + 85 = 148 hours**
**variance = 100 + 25 + 625 = 750**
**range = square root of variance = 27.4 hours**
**estimate is from 121 to 175 hours**

## Using Multiple Proxies 

**If you have size/hour data for several proxies**
**estimate each as before**
**combine the total estimates and prediction intervals as just described**
**Use multiple regression if**
**there is a correlation between development time and each proxy**
**the proxies do not have separate size/hour data**
**multiple regression is covered later**
** **

## Resource Estimate Summary

**To make a resource estimate**
**start with a size estimate**
**use the PROBE method**
**use your historical size and hours data**
**use regression if you have sufficient data**
**Calculate the prediction intervals **
**use the same method as with size estimates**
**use the size and hour data**

## Schedule Estimating 

**To make a schedule you need three things**
**the estimated direct project hours **
**a calendar of available direct hours **
**the order in which the tasks will be done**
**You then need to**
**estimate the hours needed for each task**
**spread these hours over the calendar of available hours **

## Available Direct Hours

**Staffing schedule**
**new projects are not instantly staffed**
**you need a committed staffing plan **
**Produce a calendar spread of available hours **
**at 52 weeks a year and 40 hour weeks - one year =  2080 hours**
**with 3 weeks vacation and 10 holidays, one year = 1880 hours (90%)**
**with 10% for meetings, 5% for mail, ... one year = 1000 to 1400 hours (50 to 65%)**

## The Task Order

**The task order must be driven by the development strategy**
**you need a conceptual approach**
**each task needs completion criteria**
**must consider task interdependencies**
**also consider cost and cycle time priorities**
**Determine planned task order**
**task order will change with new knowledge**
**the initial task order provides a basis for  planning**

## Produce the Schedule

**Estimate the hours for each task**
**what portion of total hours have such tasks    historically taken?**
**will anything unusual affect this project?**
**to ensure tasks are not omitted, spread the task time for the entire project**
**Spread the task hours over the calendar**
**identify key project checkpoints**
**use a standard format**

## Task Planning Template

**The PSP task planning template is in Table C47 (page 693)**
**To start filling out this template**
**list the tasks in their expected order of completion**
**enter the hours each task is expected to take**
**add the hours in the cumulative hours column**
**At this point, start to prepare the schedule planning template**

## Schedule Planning Template

**The PSP schedule template is in Table C49 (page 695)**
**To start filling out this template**
**list the calendar dates in the left column**
**use days or weeks, depending on project scale**
**for days, list every date**
**for weeks, use a standard day, say Monday**
**list the planned direct project hours to be available that week**
**add the hours in the cumulative hours column**
**complete the task and schedule templates  together**

## Completing the Plan  

**For each task**
**find the cumulative hours to complete that task on the task template**
**find the week on the schedule template when those hours have first been exceeded**
**enter the week’s date in the Date column for that task on the task template**
**You now have the task schedule**

## Schedule Planning Example - 1

**Using form C47, start with an estimate of the hours per task**
**Task           Hours     Cum. Hrs**
**   ****1                  2              2**
**   ****2                  5              7**
**   ****3                  4            11**
**   ****4                  7            18**
**   ****5                  3            21**
**   ****6                  5            26**
**   ****7                  6            32**
**   ****8                  3            35**
**   ****9                  2            37**

## Schedule Planning Example - 2

**Using form C49, estimate the direct hours available per day**
**Day            Hours     Cum. Hrs**
**   ****1                  3              3**
**   ****2                  5              8**
**   ****3                  5            13**
**   ****4                  5            18**
**   ****5                  4            22**
**   ****6                  6            28**
**   ****7                  5            33**
**   ****8                  5            38**

## Schedule Planning Example - 3

**Enter the task schedule: the day on which the cumulative hours for each task are reached**
**Task           Hours     Cum. Hrs    Day**
**   ****1                  2              2             1**
**   ****2                  5              7             2**
**   ****3                  4            11             3**
**   ****4                  7            18             4**
**   ****5                  3            21             5**
**   ****6                  5            26             6**
**   ****7                  6            32             7**
**   ****8                  3            35             8**
**   ****9                  2            37             8**

## Earned Value

**The purpose of earned value is to**
**establish a value for each task**
**permit progress tracking against the plan**
**facilitate tracking even with plan changes**
**The principles behind earned value are**
**it provides a common value for each task   **
**this value is the percent of total project hours this task is planned to take**
**no value is given for partial task completion**
**major plan changes require new plans  **

## Establish the Planned Value

**On the task template**
**total the project hours**
**calculate the % each task is of the total hours**
**enter this % as the planned value (PV) for that task**
**calculate the cumulative PV for each task**
** **
**On the schedule template**
**enter the cumulative planned value for the tasks to be completed each week**

## Schedule Planning Example - 4

**Next, produce the planned value (PV), or the % of the total job that each task represents**
**Task           Hours     Cum. Hrs    Day    PV    Cum. PV**
**   ****1                  2              2             1      5.4        5.4**
**   ****2                  5              7             2     13.5     18.9**
**   ****3                  4            11             3     10.8     29.7**
**   ****4                  7            18             4     18.9     48.6**
**   ****5                  3            21             5       8.1     56.7**
**   ****6                  5            26             6     13.5     70.2**
**   ****7                  6            32             7     16.3     86.5**
**   ****8                  3            35             8       8.1     94.6**
**   ****9                  2            37             8       5.4   100.0**

## Schedule Planning Example - 5

**Next, enter the cumulative planned value for each day**
**Day            Hours     Cum. Hrs   Cum. PV**
**   ****1                  3              3              5.4**
**   ****2                  5              8            18.9**
**   ****3                  5            13            29.7**
**   ****4                  5            18            48.6**
**   ****5                  4            22            56.7**
**   ****6                  6            28            70.2**
**   ****7                  5            33            86.5**
**   ****8                  5            38          100.0**

## Tracking the Plan

**As each task is completed, it earns the planned value**
**enter this earned value (EV) for that task**
**enter the date of task completion**
**add the EV to date in the cumulative EV column **
**In the schedule template, enter the cumulative EV for each week as it is completed**
**Track earned value versus planned value by week**

## Projecting Project Completion

**Assume that the project will continue to earn value at the rate it has in the past.**
**Extrapolate to project completion by linearly extending the EV line until it reaches 100%.**
**This is the likely project completion date unless**
**the rate of progress can be accelerated**
**the work for the remaining tasks can be reduced below the original plan**

## Schedule Planning Example - 6

**During the project, enter on the task planning template the day each task is completed**
**Task      Hours     Cum. Hrs    Day    PV    Cum. PV   Done**
**   ****1            2              2             1      5.4          5.4           1**
**   ****2            5              7             2     13.5       18.9           2**
**   ****3            4            11             3     10.8       29.7           4**
**   ****4            7            18             4     18.9       48.6           5**
**   ****5            3            21             5       8.1       56.7**
**   ****6            5            26             6     13.5       70.2**
**   ****7            6            32             7     16.3       86.5**
**   ****8            3            35             8       8.1       94.6**
**   ****9            2            37             8       5.4     100.0**

## Schedule Planning Example - 7

**Also, enter on the schedule template the earned value for each day**
**Day            Hours     Cum. Hrs   Cum. PV    EV**
**   ****1                  3              3              5.4         5.4**
**   ****2                  5              8            18.9       18.9**
**   ****3                  5            13            29.7       18.9**
**   ****4                  5            18            48.6       29.7**
**   ****5                  4            22            56.7       48.6**
**   ****6                  6            28            70.2**
**   ****7                  5            33            86.5**
**   ****8                  5            38          100.0**

## Schedule Planning Example - 8

**Using the actual EV earned per day of 9.72, enter the EV by day to project completion**
**Day            Hours     Cum. Hrs   Cum. PV    EV   Proj. EV**
**   ****1                  3              3              5.4         5.4       5.4**
**   ****2                  5              8            18.9       18.9     18.9**
**   ****3                  5            13            29.7       18.9     18.9**
**   ****4                  5            18            48.6       29.7     29.7**
**   ****5                  4            22            56.7       48.6     48.6**
**   ****6                  6            28            70.2                   58.3**
**   ****7                  5            33            86.5                   68.0**
**   ****8                  5            38          100.0                   77.8**
**   ****9                                                                          87.5**
** ****10                                                                          97.2**
** ****11                                                                        100.0**

## Changing the Plan - 1

**For small plan changes, the earned value amounts can be adjusted as follows**
**assume the change is a task addition **
**estimate the hours for the new task**
**determine the new task PV%**
**add this amount to the project total**
**proportionally reduce the value of every task  by the ratio 100/(100 + new task PV) **

## Changing the Plan - 2

**The plan is still tracked against the original planned value schedule.**
**By adding a task, the value of all the completed and planned tasks is reduced.**
**When tasks are deleted, the value of all the completed and planned tasks is increased.**
**For major plan changes, you must produce a new plan.**

## Plan Change Example - 1

**To add a task, proportionately reduce the other task PVs so they total 100**
**Task   Hours   Cum. Hrs    PV   Cum. PV  Adj. EV  Cum. EV**
**   ****1        2            2           5.4          5.4          4.8            4.8**
**   ****2        5            7          13.5       18.9        11.9          16.7**
**   ****3        4          11          10.8       29.7          9.5          26.2**
**   ****4        7          18          18.9       48.6        16.7          42.9**
**   ****5        3          21            8.1       56.7          7.1          50.0**
**   ****6        5          26          13.5       70.2        11.9          61.9**
**   ****7        6          32          16.3       86.5        14.3          76.2**
**   ****8        3          35            8.1       94.6          7.1          83.3**
**   ****9        2          37            5.4     100.0          4.8          88.1**
** ****10        5          42          13.5     113.5        11.9        100.0**

## Plan Change Example - 2

**Enter the adjusted EV for each completed task but track to the original EV plan**
**Day            Hours     Cum. Hrs   Cum. PV    EV    Adj. EV**
**   ****1                  3              3              5.4         5.4        4.8**
**   ****2                  5              8            18.9       18.9      16.7**
**   ****3                  5            13            29.7       18.9      16.7**
**   ****4                  5            18            48.6       29.7      26.2**
**   ****5                  4            22            56.7       48.6      42.8**
**   ****6                  6            28            70.2**
**   ****7                  5            33            86.5**
**   ****8                  5            38          100.0**

## PSP1.1 Additions

**The PSP is augmented to include**
**resource estimating: already covered**
**schedule estimating: already covered**
**a new project plan summary **
** **
**The project plan summary adds**
**the cost performance index**
**reuse data**

## The Cost Performance Index

**The cost performance index (CPI) is**
**a measure of the degree to which projects are completed within planned cost**
**an index of around 1.0 is most desirable**
**an index of less than 1.0 indicates that projects are costing more than planned**
**an index of more than 1.0 indicates that projects are costing less than planned**
**if the index is much more than 1.0, it indicates overly conservative planning**

## Reuse

**The reuse measures are % reused and % new reused**
**A high value of % reused is desirable**
**resources are concentrated on developing new products **
**resources are not spent on redeveloping existing products.**
**A high value of % new reused indicates that a high percentage of the new and changed LOC are planned for future reuse.**

## Assignment #5

**Read Chapter 6**
**Using PSP1.1, write program 5A to do a numerical integration, using Simpson’s rule.**
**Use program 5A to calculate the values of the normal distribution integral for three values: from minus infinity to 2.5, to 0.2, and to -1.1.**
**Follow the program, assignment, and process specifications in Appendices C and D.**

## Numerical Integration - 1

**In principle, numerical integration treats a function as composed of multiple rectangular areas.**
**It then adds these areas to produce the integral value.**
**The trick is to sum these areas so as to minimize the error.**

## x(low)

**x(low)**

**x(high)**

## Numerical Integration - 2

**Numerical Integration - 2**

**The formula for calculating the integral is**
**Here**
**W is the width of the rectangular cells**
**F is the value of the function for each x value **

## Numerical Integration - 3

**To determine the integration limits**
**most statistical functions are integrated from minus infinity to some value**
**statistical distributions have a total area of 1.0 when integrated from minus to plus infinity**
**With symmetric functions (the normal and t distributions) the procedure is**
**for positive values of x, integrate from 0 to x and add 0.5 to get the answer**
**for negative values of x, integrate from 0 to the absolute value of x and subtract from 0.5 to get the answer**

## Messages to Remember from Lecture 5 - 1 

**1 -  You can use the PROBE method to estimate**
**      ****development hours.**
**2 -  This also gives you the likely hourly range**
**       ****within which the project will be completed.**

## Messages to Remember from Lecture 5 - 2

**3 -  With an accurate estimate you can make an**
**      ****accurate schedule.**
**4 -  The earned value method helps you to track**
**      ****progress and project job completion.**