Software Cost and Schedule Estimation [and Tracking] By: Richard D. StutzkeDiscussion TopicsIntroductionCreating an Estimate…Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Scheduling TasksSlide 13Costing TasksPutting The Estimate TogetherImproving Estimation AccuracyTracking ExpendituresTracking and UpdatingManaging Estimates During ExecutionCaveats to Using Additional ResourcesCAIV and SAIVConclusionQuestionsSoftware Cost and Schedule Estimation [and Tracking]By: Richard D. StutzkePresenter: Stephen Lopez-CoutoDiscussion TopicsIntroductionCreating an EstimateIdentificationSizeProductivityParametric ModelsRisksSchedulingCostingPutting the Estimate Together“Good Ideas” for Improving EstimatesTracking ExecutionManaging Estimate ChangesConclusionIntroductionThe main purpose of the paper is to present approaches for deriving an estimate of the cost and schedule of a software projectDiscusses methods to track and alter the estimates as development progressesDiscusses ways to get a project back on track after changes have been made to a scheduleCreating an Estimate…EstimatesGenerally focus on labor hours, quantity of materials and amount of services, not the costThis is computed laterRequires determining the work required to meet requirements and the effort required to perform that workCreating an Estimate…Step 1: Identify the tasksThey fall under four main categories:1. Engineering2. Program Management3. Configuration Management4. Quality AssuranceTasks are recorded in a Work Breakdown Structure (WBS)Hierarchically identifies all tasks in a projectEach successive layer should be more descriptive than its parentFor a software project, the lowest level should be detailed enough to show class namesThis is not always possible, or even necessaryCreating an Estimate…Step 2: Estimate the resources required per taskThere are many types of resources (that are often billed differently)Materials Subcontracted ItemsTravelLabor (the biggest one)The focus of the paper is mainly applied to estimating labor based on the engineering (development) effortsCreating an Estimate…Step 3a: Estimating the Software Development EffortBasic MethodE = S/P (Estimate = Size/Productivity)The hard part is determining the size and productivity variablesEstimating Size – three main factors1. Units of measure2. Software included in the measurement3. Amount of reused codeReused code is generally counted differently than newly written codeMust track code Added, Changed and Deleted from the reused codeCreating an Estimate…Step 3a Continued… Estimating Productivity – An aggregate of the capabilities of the development teamOften based on historical project dataNew project must use the same size measure and must be implemented with equivalent approaches - same programming language, platform, etc. There are a lot of variables that are difficult to quantify that play a role in this estimateDiseconomy of scale – project size and productivity are inversely relatedCreating an Estimate…Step 3b: Estimating the Software Development EffortParametric Estimation MethodsSome algorithm is used to determine the estimation based on some set of independent inputsAlgorithm and Inputs must be created by an expert estimator and tested to fit legacy dataBased on theory, experience and expert judgmentsAlgorithms can change between evaluations for the different lifecycle phases or componentsRA, design, test, etc.Creating an Estimate…Step 3b: Parametric Estimation Methods…ContinuedAllocations can be automatically made against WBS items to provide schedule detail along with costPerformance:Validation and calibration of the method is very importantModels calibrated against general industry data usually provide estimates within 20% of the actualsModels calibrated with an organization’s own historical data provide estimates within 5% of the actualsThese models ONLY provide an estimate of the SW development activities, not the other tasks and items that form a complete estimateCreating an Estimate…Step 4: Estimating RisksRisks are areas that are identified as possible causes of problems in the futureSeverity is determined by two variablesLikeliness of occurrenceImpact if it occursGenerally a label of High, Medium or Low is applied to the risk based on those variablesMain Risk areas are: Cost, Schedule, Technical and BusinessDuring estimation creation a lot of the system risks should become apparentAdditional effort should be added to the proposal to track and handle these risksOften taken care of with “Management Reserve”Scheduling TasksWhen all of the tasks are identified and decomposed a schedule must be createdGenerally based on the WBS (if it goes down to the appropriate level)May also be based on outputs of detailed designThere are often multiple related schedules created with each representing a greater level of detailHighest level shows major milestonesA milestone is an event that will occur at a specified dateLowest level shows individual tasks creation of specific classesScheduling TasksDependency checking is important when creating a scheduleSome tasks have prerequisites that must complete before they can beginOthers are completely independentWhich means they can be worked in parallelCreating a Schedule does four main things1. Sequences tasks Requires analyzing dependencies2. Assigns resources to tasksNot specific people, but notional resources3. Calculates the length of the tasksCritical Path is the length of time for the longest path through the schedule. This is the program time to complete.4. Compares interim milestones with those from the master scheduleIt is important to ensure that the schedule begins and ends cleanly, with no dangling tasksCosting TasksConverts the effort calculated previously into actual dollar amountsMust take into account the classification of each person working on the tasksJr. Engineer, Lead Engineer, Program Manager, etc. Each of these roles are costed at different base amountsSo two Jr. Engineers may make different amounts of money, but the customer is charged a single “Jr. Engineer” rateWork is charged based on a loaded labor rateThis rate (generally per hour) includes not only
View Full Document