Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Dennis, Wixom, and Tegarden, Wiley 2005 Chapter 4: Project Management Copyright © 2005 John Wiley & Sons, Inc. • • • • All rights reserved. Reproduction or translation of this work beyond that permitted in Section 117 of the 1976 United States Copyright Act without the express written permission of the copyright owner is unlawful. Request for further information should be addressed to the Permissions Department, John Wiley & Sons, Inc. The purchaser may make back-up copies for his/her own use only and not for redistribution or resale. The Publisher assumes no responsibility for errors, omissions, or damages, caused by the use of these programs or from the use of the information contained herein. 2 Introduction • Project Management (PM) has many definitions: – Process of planning and controlling the development of a system within a specified time frame at a minimum cost with the proper functionality. – Application of knowledge, skills, tools, and techniques to project activities to meet project requirements – Art of directing and coordinating human and material resources throughout the project lifetime using modern management techniques to achieve predetermined objectives of scope, cost, time, quality, and participant satisfaction • PM makes trade-offs among three concepts – The size of the system (in terms of what it does) – The time to complete the project – The cost of the project 3 • A project is defined as – A temporary endeavor undertaken to create a unique product, service, or result – Any undertaking with a defined starting point and defined objectives by which completion is defined • A Project Manager has the primary responsibility for managing the tasks & roles that need to be coordinated. • Critical factor for success is to start with a realistic assessment of the work that needs to be done • We’ll follow a four step process – – – – Identify project size Create and manage the workplan Staff the project Coordinate the project activities 4 Outline 1. 2. 3. 4. 5. Identify project size Create and manage the workplan Staff the project Coordinate the project activities Examples & Case Studies 5 Step 1: Identify Project Size/Time • Two basic ways to estimate the time required to build a system – Simple: Industry Standard Estimate • Multiple of the time spent in the planning phase – Complicated: Use Function Points • Estimate system size • Estimate effort required • Estimate time required 6 Industry Standards Methods • Predict total completion time based on the time spent in the planning phase • Industry standards for a typical system – – – – 15% Planning 20% Analysis 35% Design 30% Implementation • If planning took X months, then the whole project is expected to take X/.15 months • Limitation: Is your system typical? 7 Example Planning Analysis Design Implementation Typical 15% Industry Standard for business apps 20% 35% 30% Time required Estimated: 5.33 months Estimated: Estimated: 9.33 months 8 months Actual: 4 months Total = 26.66 months 8 Function Points Method • More sophisticated approach uses function points – A function point is a measure of program size that is based on the system’s number and complexity of inputs, outputs, queries, files, and program interfaces – Software oriented • Three steps – Estimate system size • • • • Total Unadjusted Function Points (TUFP) Adjusted Project Complexity (APC) Total Adjusted Function Points (TAFP) Convert function points to lines of code – Estimate effort required • Person-months – Estimate time required • Schedule-time 9 Estimate the system size • Estimate the system size using function points • A function point is a measure of program size that is based on the system’s number and complexity of inputs, outputs, queries, files, and program interfaces • Total Unadjusted Function Points (TUFP) – List major elements of system – Determine total number of each element – Specify a complexity index of each component (low, medium, high) – Total index is multiplied by number of components to compute the total unadjusted function points (TUFP) 10 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 Interfaces __x 5 __x 7 __x 10 ____ TOTAL UNADJUSTED FUNCTION POINTS ____ 11 TUPF Example 12 • Adjusted Project Complexity (APC) – Need to scale the function points because the complexity of system is greater than sum of its parts. – Method 1: • Assess the impact of 14 additional factors to determine the project complexity (PC) • Compute the Adjusted Project Complexity APC = .065 + (0.01 * PC) – Method 2: Guess the APC • 0.65 = Simple system • 1.00 = Normal system • 1.35 = complex system • Total Adjusted Function Points (TAFP) – TAFP = APC * TUFP 13 Adjusted Project Complexity 14 Function Point Estimation Project Complexity (PC): (From Step 2) Adjusted Project Complexity (PCA) = __7______ 0.65 + (0.001 * __7_ ) Total Adjusted Function Points: _0.72 * _338_ = 243 (TUFP -- From Step 1) 15 Final Step • Convert function points to lines of code • Multiply function points to get approximate lines of code in chosen language • If you chose C, then 243 function Points times 130 lines of code = 31,590 total lines of code 16 Function Points to Lines of Code Language Lines of Code Per Function Point C 130 Cobol 110 Java 55 C++ 50 Visual Basic 30 PowerBuilder 15 HTML 15 Packages (e.g. Access, Excel) 10-40 Source: Capers Jones, Software Productivity Research 17 Outline 1. Identify project size (function points) • Estimate system size • • • • • • 2. 3. 4. 5. Total Unadjusted Function Points (TUFP) Adjusted Project Complexity (APC) Total Adjusted Function Points (TAFP) Convert function points to lines of code Estimate effort required (person-months) Estimate time required (schedule-time) Create and manage the workplan Staff the project Coordinate the project activities Examples & Case Studies 18 Estimate the Effort Required • Effort is a combination of system size and production rates • COCOMO model – Converts a lines-of-code estimate into a personmonth estimate – For moderate-size projects multiply thousands of lines of code by 1.4 to get the number of person months required to complete the project, i.e. • Effort (person months) = 1.4 * lines of code (1000s) – If LOC = 2000, Effort = (1.4 * 2000) = 28 Person Months 19 Estimate the time required • With effort established, we can now estimate the schedule time • Rule of thumb uses – Schedule time (months) = 3.0 * person months1/3 • This is for analysis, design, and implementation. It does not include planning. • Example: if effort = 14 person months, the schedule time should be 3 * 141/3 = 7 months 20 Outline 1. 2. 3. 4. 5. Identify project size (function points) Create and manage the workplan Staff the project Coordinate the project activities Examples & Case Studies 21 Step 2: Creating the Workplan • A dynamic schedule that records and tracks the tasks to be accomplished over the course of the project • Level of detail provided for each task depends on the needs of the project – Who will perform the work – When completed – Deliverables, etc • Steps to create – – – – – Identify project tasks Estimate task length Organize and determine task dependencies Specify to whom task will be assigned List deliverables 22 Sample Workplan Information Workplan Info Task Name Start Date Completion Date Person assigned Deliverables Completion status Priority Required resources Estimated Time Actual Time Example Perform eco feas Jan 05, 2003 Jan 19, 2003 Project Sponsor: Mary Smith Cost-Benefit Analysis Open High Spreadsheet Software 16 Hours 14.5 Hours 23 Identifying Tasks • Need to determine the tasks required to meet the objectives listed on the system request. • Method 1: Standard Methodologies – Start with a standard list of tasks Select steps and deliverables appropriate for the current project – Most organizations will have a standard methodology they use for all projects • Method 2: Structured top-down approach – Identify high level tasks – Break them into increasingly smaller units – Create the work breakdown structure 24 Work Breakdown Structure (WBS) • A WBS is a list of the project tasks – Specify high level tasks – Break down each step into smaller tasks – Number them in a hierarchical fashion • WBS is the backbone of the project workplan • Number of tasks and level of detail depends on the complexity of the project • WBS can be organized in two ways – SDLC phases – Product Lines 25 WBS based on SDLC Number Name 1 1.1 1.1.1 1.1.2 1.1.3 2 3 4 Dur Dep Status Planning Feasibility Analysis Technical Feasibility Economic Feasibility Org. Feasibility Analysis Design Implementation 26 WBS based on Product Lines (Web Site Development) Number Name 1 2 3 4 5 Dur Dep Status Applets Application Servers Database servers Sets of web pages Site Map 27 WBS to Implement an IT Training Class 28 Project Workplan • Primary tool for managing the project (i.e. tasks in WBS) – Determine if project is on schedule – How well it was estimated – Changes necessary to meet the deadline • Lists information for all tasks in the WBS. – – – – – People assigned to perform the work Estimated and actual time to complete Current status (open, in progress, complete, etc) Task dependencies Key milestones • Various formats – Tabular (Expansion of the WBS) – Gantt Chart – PERT Chart 29 Gantt Chart • Horizontal bar chart for workplan information – Time laid out across the top – Each task is a row • Horizontal bar denotes the duration of the task. • Bars are filled in to show the amount completed – Upside-down triangles or diamonds denote a milestone – Arrows between task bars show dependencies – Names of people assigned to the task listed by task bar • To limit the number of tasks, create a hierarchy of Gantt charts for each level of detail • Useful for determining – Which tasks are on schedule – How each task is progressing – Which tasks will be active at the same time 30 31 PERT Chart • Project Evaluation & Review Technique (PERT) • Network flow graph for the workplan – – – – – Nodes represent tasks Nodes contain time estimates Arcs between nodes represent dependencies Partially completed tasks have a diagonal line through the node For completed tasks, the node is crossed out. • PERT uses weighted average of three estimates: – O = Optimistic, M = Most likely, P = Pessimistic – PERT Average = (O + 4*M + P)/6 • Useful for – Viewing task dependencies and identifying key tasks – Finding critical path (longest from inception to completion) 32 Pert Chart 33 Refining Estimates • Initial estimates are broad ranges that must be refined throughout the SDLC to – In planning phase, initial estimates based on little knowledge of the system – As we proceed through the SDLC, more information is gathered and the system concept is developed so the estimates become more accurate and precise • A well-done project plan has 100% margin of error for project cost. 34 Error Margins Phase Deliverable Typical Error Margins Cost (%) Time (%) Planning System Request Project Plan Analysis System Proposal Design System Specification 400 100 50 60 25 15 25 10 35 Missed Deadlines • Case 1: – Remaining tasks are simpler than task which missed its deadline, so they will not miss their deadlines – Remaining tasks are believed to be simpler than when the schedule was made, so we can make up the lost time – Do not change the schedule • Case 2: – Remaining tasks are simpler than task which missed its deadline, so they will not miss their deadlines – Remaining tasks are believed to be as complicated as when the schedule was made, so we cannot make up the lost time – Shift entire schedule by current delay (i.e. if deadline was missed by 2 weeks, shift all remaining start and stop times by 2 weeks) • Case 3: – Remaining tasks are as complicated as task which missed its deadline, so they will miss their deadlines – Scale all time estimates (i.e. if the task duration was over by 25%, scale all remaining task times by 25%) 36 Scope Management • Major reason for schedule and cost overruns is not poor estimates, but rather from Scope Creep • Scope creep occurs when new requirements are added after project was defined and “frozen” – Users may gain a better understanding of the system and find new functionality that would be useful. – Designers may get creative and want to explore new capabilities – Management may want additional features • Solutions – Uncover and clarify all requirements early in SDLC through prototypes that give users experience with the system and let them visualize how it will support their needs – Assess extra time and cost to implement new requirements – Only allow changes for absolutely necessary requirements – Postpone new functionality until later product version – Time boxing 37 Time Boxing • Most of the time, users only need a small subset of the system’s features. These can be provided relatively quickly. • Instead of letting the requirements and tasks drive the schedule, set the schedule and provide only the functionality that can be delivered in that time frame. • Note: – Deadline must be realistic – Reduce functionality, but do not sacrifice quality – Fewer “finishing touches” 38 Time Boxing Steps 1. Set the date for system delivery 2. Prioritize the functionality that needs to be included in the system 3. Build the core of the system (the functionality ranked as most important). 4. Postpone functionality that cannot be provided within the time frame 5. Deliver the system with core functionality 6. Repeat steps 3 thru 5, to add refinements and enhancements 39 WBS Problems • They are too specific to the design of the system being developed – To create the WBS we need to decompose the system design and tasks too soon – If the problem domain is not well understood we may need to commit to an architecture before the requirements are understood • Detail level – Too many levels of detail too early in the SDLC for large projects – Too few level for small projects. • Since they are project specific, they can be very difficult to compare across projects – Difficult to learn from previous projects managed by 40 Evolutionary WBS • Addresses problems by allowing the development of an iterative workplan • Evolutionary WBS – Organize in a standard manner across all projects: by workflows, phases, then tasks • Decouples the structure of the WBS from the structure of the project, so we do not need to commit to a system architecture – Create in an incremental and iterative manner • First evolutionary WBS done with initial aspects of the project which are well understood • Later on more details are added to the WBS. • This encourages a more realistic view of cost and schedule estimates – Comparable to earlier projects based on cost and schedule estimation 41 Outline 1. 2. 3. 4. 5. Identify project size (function points) Create and manage the workplan Staff the project Coordinate the project activities Examples & Case Studies 42 Staff The Project • Determining number of people for the project • Matching people’s skills with project needs • Motivating people to meet project objectives • Minimizing conflicts 43 Staffing Plan • Determine who will work on the project • Staffing Levels – Num people = total effort (person months) divided by opt schedule – Increasing staff does not necessarily shorten the project’s length because more people are harder to coordinate and manage, i.e. adding staff may add more overhead than additional labor – Teams of 8-10 reporting in a hierarchical structure can reduce complexity • Reporting Structure – Project Manager oversees overall progress of the development effort – Functional Lead manages a group of analysts – Technical Lead oversees progress of programmers & technical staff • With roles and reporting structure in place, assign people – Consider both technical and interpersonal skills – One person can fill multiple roles • Staffing levels will change over a project’s lifetime 44 Possible Reporting Structure 45 Motivation • Use monetary rewards cautiously • Use intrinsic rewards – Recognition – Achievement – The work itself – Responsibility – Advancement – Chance to learn new skills 46 Handling Conflict • Group cohesiveness contributes more to productivity than the capabilities and experience of individual project members • Conflict avoidance strategies – Clearly define roles and responsibilities – Hold individuals accountable – Establish ground rules and operating procedures • How the group will communicate with each other • Procedures for updating the work plan – Develop schedule commitments ahead of time – Forecast other priorities and their possible impact on the project 47 Outline 1. 2. 3. 4. 5. Identify project size (function points) Create and manage the workplan Staff the project Coordinate the project activities Examples & Case Studies 48 Coordinate the Project Activities • Need to put in place efficient development practices and mitigate risk • Case Tools • Standards • Documentation • Risk Management 49 CASE Tools • Computer Aided Systems Engineering (CASE) • Benefits – Tasks are easier and quicker – Development information is located in a central repository – Standardized documentation (typically in diagrams) – Can reduce costs and improve quality • Need training and experience to achieve benefits 50 CASE Tools Initiation Analysis Upper CASE Design Implementation Lower CASE Integrated CASE (I-CASE) 51 CASE Components Diagrams Screen Designs CASE Repository Procedural Logic Metadata 52 • Create standards the project team must follow – – – – Formal rules for naming files Forms indicating goals reached Programming guidelines Documentation standards • Document early and often – Good doc practices are essential to any project – Developers will move in and out of the project – Document the system as it evolves while it is fresh in your mind • Risk assessment – Track and re-evaluate risk throughout the SDLC – Scope creep, personnel issues, schedule problems 53 Classic Mistakes • Overly optimistic schedule – Use realistic estimates & include slack time at end of each phase • Failing to monitor schedule – Schedule regular progress reports, otherwise you will not know if the project is on schedule. • Failing to update schedule – If team falls behind, do not assume you can make up time. This may be a sign the schedule was too optimistic – Revise the schedule or use time boxing • Adding people to a late project – Increases coordination problems – Slows development while new members are trained – Revise the schedule or use time boxing 54 Summary • Project management is critical to successful development of new systems • Project management involves planning, controlling and reporting on time, labor, and costs. • For more detail on project management, visit the project management institute at – http://www.pmi.org 55 Outline 1. 2. 3. 4. 5. Identify project size (function points) Create and manage the workplan Staff the project Coordinate the project activities Examples & Case Studies 56 Case Study: CD Selections 57 CD Selections • Short deadline so phased development with time boxing to ensure some version of the product would be in place in time (although full system might come later) • Project size – – – – – – Estimated components to get TUFP = 158 Estimated APC factor at 1.2, so TAFP = 190 Lines of code equal 19,200 COCOMO formula 1.5 x 19.2 = 27 person months Schedule time equals 3 x 271/3 = 9 months Pad by 10% so 10 months • Workplan – Used an in-house evolutionary WBS (Fig 4-22) • Staffing – 27 person months/ 10 month deadlin = 3 people 58 CD: Function Points Description Complexity Num Low Medium Total High Inputs 6 0x3 4x4 2x6 28 Outputs 7 2x4 4x5 1x7 35 Queries 8 3x3 4 x4 1x6 31 Files 4 0x7 4 x 10 0 x 15 40 Program 3 0x5 2x7 1 x 10 Interfaces Total Unadjusted Function Points (TUFP) 24 Adjusted Project Complexity 1.2 Total Adjusted Function Points (TAFP) 190 158 59 CD: Staffing Plan Role Description Person Project Manager Oversees project to make sure it meets objectives Alec in time and within budget Infrastructur e Analyst Ensures system conforms to infrastructure Ian standards & infrastructure can support the system Systems Analyst Designs system: Focus on interface with distribution system Ian Systems Analyst Designs system: Focus on analysis models and interface design K.C. Systems Analyst Designs system: Focus on analysis models and performance Anne Programmer Codes the system K.C. Programmer Codes the system Anne Reporting Structure: All team members report to Alec 60 CD: Project Charter • Project Objectives – The project team will create a working web-based system to sell CDs in time for the holiday season • The internet order team members will: – Attend a staff meeting each Friday at 2 pm to report on the status of the assigned tasks – Update the workplan with actual data by Fridays at 5 pm – Discuss problems with Alec as soon as they are detected – Support each other when help is needed, especially for critical tasks that could delay the progress of the project – Post important changes to the project on the team bulletin board as they are made 61