440 likes | 586 Views
INFO 636 Software Engineering Process I Prof. Glenn Booker. Week 6 – Estimating Resources and Schedule. Overview. This chapter covers planning multiple small tasks, and assigning earned value to each task
E N D
INFO 636Software Engineering Process IProf. Glenn Booker Week 6 – Estimating Resources and Schedule INFO636 Week 6
Overview • This chapter covers planning multiple small tasks, and assigning earned value to each task • As we get further into the course, notice the forms focus more on program management concerns than the details of programming or other technical matters INFO636 Week 6
Resource Planning • Last week we focused on estimation of the size of our product • Now we will apply the same techniques to estimate the time it will take to produce that work product • The math and overall concept are the same - we just tweak what variables we’re using INFO636 Week 6
Productivity • Productivity is the amount of effort (staff hours of work) needed to accomplish a task • Here, might measure hours/LOC, or to write or review a document, hours/page • Warning!! The text switches between LOC/hour and hours/LOC frequently • As usual, our estimates of productivity are based on our own work history INFO636 Week 6
Estimating Time • The procedure for estimating the time for developing software is on page 149 • N track – you started estimating time directly from your proxies, so you have essentially skipped directly to this step • Once again, the method for estimation is based on historic data, the amount of work detail, and whether enough data is available for regression analysis INFO636 Week 6
Enough Data? • Recall that the basis for having ‘enough data’ for regression analysis is pretty loose here: • At least three sets of data points • Their linear regression results in R2 of at least 0.50 • If you don’t have ‘enough data’, the estimate is pretty much a WAG (wild guess) INFO636 Week 6
Regression Analysis • Following the same math used for beta0 and beta1 last week, now use: • The X axis is the number of “Estimated New and Changed LOC” • This was (N) on form C39 • The Y axis is the total number of Actual hours (not planned) for each project • See p. 153 for sample data INFO636 Week 6
Sample Regression • R2 = 0.83 ≥ 0.50 so we can use regression, which gives us • Slope beta1 = 0.12 hrs/LOC • Intercept beta0 = -2.3 hrs INFO636 Week 6
Note on Time Units • The text uses hours for actual effort on each project • Warning: the text frequently omits units • We have been using minutes, since these are small projects • If you want to keep using minutes consistently, that’s fine • E.g. your slope would be in min/LOC INFO636 Week 6
Range and Interval • A revised time estimate (p. 154) is • Time = beta0 + beta1*(P+M) • Be careful – this beta0 and beta1 have different values from those used for refining the size estimate • We still use (P+M) since the X axis is LOC • The calculations for range and interval stay similar to before INFO636 Week 6
Range and Interval • The range is also found on page 154 • Now sigma (s) is based on the hours and LOC data • The ‘t’ variable is the same, but be careful with its ‘n’ value (number of data sets) • The big square root term just uses LOC data • The interval formula uses hours & range INFO636 Week 6
Estimating Larger Tasks • As projects get bigger, you may need to combine several estimates from smaller tasks • Also handy for INFO 637, the Team Software Process • Typically want a project broken into tasks between 10% and 25% of the whole effort INFO636 Week 6
Multiple Estimates • As before, we want to define tasks in a way that will allow prediction of their size and effort • The same rules apply for at least three data pairs and R2 at least 0.50 • For example, see data on page 158 for three parts of a larger project INFO636 Week 6
Multiple Estimates • For each task, find the estimated hours, LPI, and UPI • Find the variance for each task • Variance = (UPI-LPI)2/4 • Add the variances, and take the square root to get the standard deviation of the estimate (32.28 hrs in the example) INFO636 Week 6
Multiple Estimates • Std dev estimate = √[S(variance)] • Add all the UPI and LPI values, and divide by 2 to get the midpoint of the combined range • Midpoint = [S(LPI) + S(UPI)]/2 • This is 142.5 hrs in the example INFO636 Week 6
Multiple Estimates • The UPI and LPI for the combined estimate are • UPI = midpoint + std dev estimate • LPI = midpoint – std dev estimate • This gives the values shown on p. 159 of LPI = 110.22 and UPI = 174.78 hrs • Notice this is a smaller span than the sum of LPI (89.8) to the sum of UPI (195.2) INFO636 Week 6
Multiple PROBE Estimates • The previous method works for a wide range of estimation methods – parts of the project could be coding, parts documentation, etc. • If all the parts are coding, and we have a good set of data for estimation, we can simplify the process INFO636 Week 6
Multiple PROBE Estimates • Suppose we have the data on p. 163 as our historic data • We want to estimate the time for developing three projects, which are 114, 193, and 318 object LOC = (P+M) • This is the example starting on p. 161 INFO636 Week 6
Multiple PROBE Estimates • From the historic data, find beta1 and beta0 • beta1 = 0.1482 hrs/LOC • beta0 = -5.95 hrs • Combine the tasks into a single task • Size = 114 + 193 + 318 = 655 LOC • Hours = beta0 + beta1*Size = 91.13 hr INFO636 Week 6
Multiple PROBE Estimates • The historic data is used to find • s = 5.69 hrs • The Range is based on the Size of this combined project, and the historic LOC • Recall that ‘t’ is the only place where the prediction interval percent appears, 70% • Range = 16.27 hrs (same units as s) INFO636 Week 6
Multiple PROBE Estimates • Hence the prediction intervals are • UPI = 91.13 + 16.27 = 107.40 hrs • LPI = 91.13 - 16.27 = 74.86 hrs • So this is the same process as finding the time interval for one task – since they are all based on the same data, we can combine them into one big estimate INFO636 Week 6
Multiple Regression • The example in section 6.5 on multiple regression is beyond the scope of this course • Feel free to read it on your own, but we won’t be getting that messy • Skip to section 6.6 INFO636 Week 6
Estimating Schedule • So far we have focused on estimating the size of the product (e.g. LOC) and the effort or resources needed to create it • Now add the dimension of calendar schedule to the picture INFO636 Week 6
Estimating Schedule • A work year should, in theory, have about 52 weeks * 40 hrs/week = 2080 work hours available • Holidays, sick leave, and vacation typically cut this by 10-15% (say, 5 hrs per week on average) INFO636 Week 6
Estimating Schedule • Most people spend some time each week dealing with other projects, general meetings, etc. which is another 25% lost (~10 hrs/wk) • Therefore we only have about 25 hours per week for actual productive work! INFO636 Week 6
Utilization Factor • On a personal level, you can track how much time you actually get work done in a normal time interval • If you set aside 4 hours for homework, what percent of that 4 hours is actually spent on the homework? • Typically 75% is a good utilization factor INFO636 Week 6
Schedule Planning • The PSP schedule planning process is outlined on page 171 • The basic concept is straightforward • Determine the time needed for the task • Find the time available to work on the task • Allocate available time to the task, until the task is done • That’s your schedule INFO636 Week 6
Schedule Planning • Complicating factors can include • Other time commitments (which take away from your available time) • Figuring out the sequence in which tasks need to be accomplished • Establish milestones to mark significant accomplishments toward task completion INFO636 Week 6
Planning Examples • Pages 178-179 show an example, from the author’s tasks to write the text • Each task has a number of Hours estimated (the Plan section) • Those are added going down the column in the Cumulative Hours column • Notice the Date when each task is planned is also shown INFO636 Week 6
Earned Value • “Earned value” is a method for planning and tracking progress on a project • See INFO 630, lecture 3 for more details • It balances measuring the time, effort (resources), and work accomplished on a project by assigning an ‘earned value’ to reward completion of each task INFO636 Week 6
Earned Value • In reality, earned value for a task is often related to its cost • If a task is estimated to cost $3000, then 3000 is its ‘earned value’ when we complete it • Here, we’ll use the planned earned value of a task to be ‘the planned percent of the overall project effort’ INFO636 Week 6
Earned Value • So to determine the Planned Value for each task • Estimate the effort for all tasks, and add them up for the total hours for the project • Each project’s Planned Value is its Hours, divided by the total hours, times 100 • Planned Value = Hours / (Total Hours) * 100 INFO636 Week 6
Earned Value • The Cumulative Planned Value (CPV) is just adding up Planned Value (PV) as you go down the column • In the example on page 184 • The first CPV equals the first PV • The second CPV is the previous CPV, plus the current PV (0.99+0.53=1.52) • The third CPV is (1.52+1.43 = 2.95), etc. INFO636 Week 6
Earned Value • The last CPV for the last task should always be 100.0 (%) • This isn’t true for the examples in the text, because they don’t show all tasks for writing the book • So the Plan section tells how much effort each task will be, and what percent of the overall project it is INFO636 Week 6
Earned Value • Now for the Actual part • As each task is accomplished, note the Date is was completed • The Earned Value for each task is equal to its Planned Value – regardless of how much time it really took to perform the task INFO636 Week 6
Earned Value • Then the (Actual) Cumulative Earned Value (CEV) is added up the same way as the Planned CEV • When all the tasks have been completed, the last entry (Actual) CEV should normally be 100% • The only time this isn’t true is if you had to change a plan after the project started INFO636 Week 6
Adjusted Earned Value • The Adjusted Earned Value column is only used if you had to replan a project • Typically done when new tasks are identified, but you don’t want to recalculate earned values for every task • If an existing task turns out to have much different scope than planned, you don’t replan – just accept it as a poor estimate INFO636 Week 6
Adjusted Earned Value • So to add tasks to an existing plan, use the same estimation method to determine the amount of effort (Hours) needed for each new task • Assign each new task a Planned Value based on the original number of total hours for the project INFO636 Week 6
Adjusted Earned Value • Now treat the new tasks like any others in the plan • The main impact will be that the final (end of project) values for Cumulative Planned Value and Cumulative Earned Value will be greater than 100%, but equal to each other • This is discussed, sort of, on pp. 182-3 INFO636 Week 6
Using Earned Value • As described in the INFO 630 notes in more detail, the primary benefit of earned value is that, by tracking work accomplished separately from the amount of actual effort, we can estimate both when the project will finish, and the total effort (cost) needed • Good estimates can be made only 15-20% into the project INFO636 Week 6
Estimating Accuracy • There are many ways to compare the results of planning with the actual project performance • Here we focus on the Percent Error • Percent Error = 100*(actual - estimate) / (estimate) • This can be calculated for each project, for example INFO636 Week 6
Estimating Accuracy • We can find the Percent Error for anything we are planning and measuring: • Program Size • Effort • Schedule INFO636 Week 6
Estimating Accuracy • On pp. 197-201 of the text, there are many examples of Percent Error during a typical PSP course • The main reason for plotting this is to determine if your estimates are getting more accurate • In class, the process you follow is changing often, so I wouldn’t worry if they don’t INFO636 Week 6
Composite Estimates • Many small estimates together will have less error than the worst of them • This is part of our motivation for breaking a project into small parts for estimation • You also can examine your trend for Percent Error to see if you are overcompensating for your estimation errors INFO636 Week 6