Presentation on theme: "CSC444F'06Lecture 41 The Capacity Constraint. CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it."— Presentation transcript:
CSC444F'06Lecture 41 The Capacity Constraint
CSC444F'06Lecture 42 Release Planning What to Build: –have a big list, choose the most important from it By when to build it: –not too early that we flood our customers with releases and the overhead kills us –not too late that they think us unresponsive Using how many people –usually fairly fixed for the next release. For the next release, determine –What to build, –By when to build it, –Using how many people.
CSC444F'06Lecture 43 The Capacity Constraint A fundamental constraint that governs all planning activity. A geometric analogy 1 person-day days personspersons
CSC444F'06Lecture 44 A geometric analogy The Capacity Constraint A fundamental constraint that governs all planning activity. A certain requirement A certain capacity
CSC444F'06Lecture 45 The Capacity Constraint A fundamental constraint governs all planning activity. Its gotta all fit!
CSC444F'06Lecture 46 Release Planning What to buildF By when to build itTF N x T Using how many peopleN Need to build an initial plan that respects the capacity constraint Need to continuously update the plan to maintain its adherence to the capacity constraint.
CSC444F'06Lecture 47 Most Common Problem Comes from either –not knowing –knowing but hoping for the best (Yourdon Death March) (can happen initially or as we go)
CSC444F'06Lecture 48 Dealing with Issues as they Arise Developer leaves the team Add time Cut features Both
CSC444F'06Lecture 49 Other Happenings
CSC444F'06Lecture 410 Organizational Issues Management must appreciate that software development carries with it certain inherent risks. The business of a software organization is to manage and adapt as possibilities continuously become reality. Ranting and raving is unproductive With good data, good managers will make good decisions.
CSC444F'06Lecture 411 The Quantitative Capacity Constraint Post-Facto, the following relationship must hold. –But, it requires careful definition. We define carefully so that we know what it is we are trying to estimate, and how to compare actuals against estimates for post-mortem.
CSC444F'06Lecture 412 Number of Workdays: T The number of full-equivalent working days for fork to dcut. Subtracts –Weekends –Statutory holidays –Company Days Subtracts anything we know in advance that nobody is expected to work.
CSC444F'06Lecture 413 Developer Power: N The average number of dedicated developers per workday working during the T-day period. Dedicated Developer?
CSC444F'06Lecture 414 Work Time & Dedicated Time Work Time or Body Time –Defined as 8 hours per workday Excludes weekends, stat. holidays, vacation entitlement. E.g., 9-to-6 with 1 hour for lunch. Dedicated Time –Uninterrupted hour equivalents. –Time dedicated to adding new features to the release. Uninterrupted Time –4 hrs with 30 min. of constant interruptions Not 3.5 hrs of dedicated uninterrupted time – more like 2 –2 hrs with NO interruptions at all
CSC444F'06Lecture 415 Examples of Dedicated Losses Maintenance (tracking down and fixing defects) on previous releases Other simultaneous projects Team-leader duties (& helping others) Meetings Training Unexpected, non-made-up days off (e.g., sick days) Sales/marketing support Loss of flow due to interruptions
CSC444F'06Lecture 416 Measuring N Assume each developer understands the concept of a dedicated uninterrupted hour. Get each of the n developers to record how many dedicated uninterrupted hours they spent in total during the coding phase. h i is whats in the time tracking system for the i th developer.
CSC444F'06Lecture 417 Attributing N d i is the number of days available during the coding phase v i is the number of vacation days they took during the coding phase h i is as before Substitute to get back to:
CSC444F'06Lecture 418 Example Bob called in sick for 2 days: accounted for in h Bob took an afternoon off, but worked on the weekend to make up for it: accounted for in h
CSC444F'06Lecture 419 Features f k = dedicated hours / 8 it took to code the k th feature.
CSC444F'06Lecture 420 Post-Mortem Imagine a time-tracking system that could track –h i,k,d dedicated (uninterrupted) hours spent –by the i th developer –on the d th day –doing coding work on the k th feature each such quantum would appear on both sides of F= N x T constraining them to be equal. See section 5.10 in book for proof.
CSC444F'06Lecture 421 Example Release Plan Sample Deterministic Release PlanDeterministic Release Plan