830 likes | 841 Views
This project management guide covers various objectives and concerns including estimation, work planning, timeboxing, staffing, risk reduction, computer-aided software engineering, and documentation.
E N D
Objectives • Become familiar with estimation. • Be able to create a project work plan. • Understand why project teams use timeboxing. • Become familiar with how to staff a project. • Understand how computer-aided software engineering (CASE), standards, and documentation improve the efficiency of a project. • Understand how to reduce risk on a project.
Project Management • The discipline of planning, organizing, and managing resources to bring about the successful completion of specific project goals and objectives • Cost • Schedule • Performance
PM Activities evolve over Phases • Inception • Elaboration • Construction • Transition
PM Artifacts in UP • Software development plan • Business case • Detailed plan for each iteration • Assessment of each iteration • Periodic status assessment • Work schedule • Project measurement database
PM in Inception Phase • Conceive new project • Preliminary business case • Identify some risk, begin assessment • Evaluate project scope and risk • More detailed development of business case and risk assessment
Cost Schedule Performance Trade-offs Cost Project management involves balancing trade-offs among the three key project parameters Project cheaper better sooner Schedule Quality/Performance
Function Point Approach Estimate System Size (function points and lines of code) Estimate Effort Required (person-months) Estimate Time Required (months)
Getting the Right Numbers for Estimation • Prior projects • Past experience • Industry standards • Detailed analysis
Estimation Guidelines • Estimate using at least two techniques • Get estimates from independent sources • Avoid over-optimism; assume difficulties • When you have arrived at an estimate, sleep on it • Adjust for the people who'll be doing the job -- they have the highest impact
Estimation Trade-offs • Size • Function (or use-case) points • Lines of code • Effort • Person-months • People available • Time • Months
Calculate Function Points • List major elements of system • Determine total number of each element • Specify complexity index of each component (low, med., high) • Total index multiplied by number of components (TUFP)
Function Point Estimation : Step One Complexity Description Low Medium High Total Inputs __x 3 __x 4 __x 6 ____ Outputs __x 4 __x 5 __x 7 ____ Queries __x 3 __x 4 __x 6 ____ Files __x 7 __x 10 __x 15 ____ Program __x 5 __x 7 __x 10 ____ Interfaces TOTAL UNADJUSTED FUNCTION POINTS
Function Points Estimation : Step Four Adjusted Project Complexity = .065 + (0.01 * Project Complexity) Total Adjusted Function Points = Adjusted Project Complexity * TUFP
Function Point Estimation Processing Complexity (PC): __7______ (From Step 2) Adjusted Processing Complexity (PCA) = 0.65 + (0.001 * __7_ ) Total Adjusted Function Points: _0.72 * _338_ = 243 (TUFP -- From Step 1)
Converting Function Points to Lines of Code Language LOC/FunctionCode Point C COBOL JAVA C++ Turbo Pascal Visual Basic PowerBuilder HTML Packages (e.g., Access, Excel) 130 110 55 50 50 30 15 15 10-40 Source: Capers Jones, Software Productivity Research
Final Step • Multiply function points by LOC/FP • Approximate lines of code per function point in the chosen language • If you chose C, then 243 function points x 130 lines of code/FP = 31,590 total lines of code
Estimating Effort • Function of size and production rate • COCOMO model • Converts a lines-of-code estimate into a person-month estimate • For moderate-size projects multiply thousands of lines of code by 1.4 to get the number of people to assign to the project
COCOMO Estimation Calculation Effort = 1.4 * thousands-of- (in Person- lines-of-code Months) Example: If LOC = 2000 Then... Effort = (1.4 * 2000) = 28 PersonMonths
Estimating Schedule Time • Rule of thumb for estimation Schedule Time (months) = 3.0 * person-months1/3
Estimation Guidelines • Estimate using at least two techniques • Get estimates from independent sources • Avoid over-optimism; assume difficulties • When you have arrived at an estimate, sleep on it • Adjust for the people who will be doing the job; they have the highest impact
Developing Work Plans • A work plan, is a dynamic schedule that records and keeps track of all tasks to be accomplished over the course of the project • Created after a project manager has a general idea of the project’s size and rough schedule • The work plan is usually the main item in a project management software application
Developing a WorkPlan • Identify tasks in the project • Estimate task length • Determine task dependencies • Specify to whom task will be assigned • List deliverables
A Workplan Example Work Plan Information Example Name of task Perform economic feasibility Start date ` Jan 05, 2001 Completion date Jan 19, 2001 Person assigned Mary Smith, sponsor Deliverable(s) Cost-benefit analysis Completion status Open Priority High Resources needed Spreadsheet Estimated time 16 hours Actual time 14.5 hours
Identifying Tasks • Top-down approach • Identify highest level tasks • Break them into increasingly smaller units • Methodology • Using standard list of tasks
Work Breakdown Structure • Specify high level tasks • Break down each step into smaller tasks and number them in a hierarchical fashion • WBS can be done in two ways • SDLC phase • Product
Top Down Task Identification Work Plan Deliverables Estimated Assigned hours To * * * * Phases with high level steps Phases
WBS Problems • They tend to be specific to the design of the information system being developed • Too many levels of detail too early on in the SDLC for large projects or too few for small projects. • Since they are project specific, they are very difficult to compare across projects.
Applying Iteration to Planning • Develop a high level long range plan, with allocation of time and resources to phases • Develop a more detailed plan for the earliest phase(s), including allocation of work, time and resources to interations • Develop a still more detailed plan for the current iteration, including work breakdown into tasks • Revise the plan iteratively, at least weekly
Gantt Charts • Good for identifying time and order dependencies • Show slack (ahead) and over-runs (past) • Good for identifying critical paths • Good for small projects, and overview of large ones • Attempt to combine work breakdown with activities, deliverables not shown • Do not show task difficulty or cost • Do not scale well for details of large projects
PERT • Project Evaluation and Review Technique (PERT) • US Navy, 1957 • Systematic method of estimating project length, and monitoring progress • Uses systematic serialization algorithm based on • Dependences • Resource availability • Adds administrative oversight to critical paths • Critical path = sequence of tasks such that if any case on the CP is delayed so is the whole project
PERT Estimation • PERT uses three time estimates: • Optimistic, O • Most likely, M • Pessimistic, P • Time Estimate = (O + 4 * M + P) / 6
Pert Chart • Used to communicate task dependencies • Allows easier visualization of tasks on a critical path