Lecture 3 Project Management Dr Taysir Hassan Abdel

Lecture 3: Project Management Dr. Taysir Hassan Abdel Hamid

Important Definitions • Project management is the process of planning and controlling the development of a system within a specified timeframe at a minimum cost with the right functionality. • A project manager has the primary responsibility for managing the hundreds of tasks and roles that need to be carefully coordinated.

Four Key Steps in Managing Projects 1. 2. 3. 4. Identifying project size Creating and managing the workplan Staffing the project Coordinating project activities

1. IDENTIFYING PROJECT SIZE

Project Manager’s Balancing Act Project Management involves making trade-offs… Project Size e m Ti ec t Pr oj ost ect C Proj Modifying one element requires adjusting the others

Project Estimation • Definition: The process of assigning projected values for time and effort • Sources of estimates – Methodology in use – Actual previous projects – Experienced developers • Estimates begin as a range and become more specific as the project progresses

Basic Approaches to Estimate Time Required to build a System 1. Using the amount of time spent in the planning phase 2. Estimating project time schedules using a more complex approach

Project Time Using the Planning Phase Approach

Project Time Estimation Using the Function Point Approach

Function Point • Is a measure of program size that is based on the number and complexity of inputs, outputs, queries, files, and program interfaces. • In addition to measuring output, Function Point Analysis is extremely useful in: – – Estimating projects, Managing change of scope, Measuring productivity, and Communicating functional requirements.

The Function Point Methodology Five key components are identified based on logical user view • • • Inputs Outputs Inquiries Internal Logical Files External Interface File Input Inquiry Output Internal Logical Files Application

Logical View of User Requirements Inquiries USER LIST OF MOLDS Interface WORK CENTERS PARTS PLANT MOLDS Internal Logical Files BILL OF MATERIALS PLANT INFORMATION CENTER VENDOR SUPPLY VENDOR INFORMATION Output PARTS LISTING USER ORDER PARTS Inputs USER CHANGE BILL

Calculate Function Points Step 1 - Calculate Total Unadjusted Function Points (TUFP): • 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 Multipliers Program Characteristic Number of inputs Number of outputs Inquiries Logical internal files External interface files Low Complexity 3 4 3 7 5 Function Points Medium Complexity 4 5 4 10 7 High Complexity 6 7 6 15 10 Sum these to get an “unadjusted function-point total” Multiply this by an “influence multiplier” (0. 65 to 1. 35), based on 14 factors from data communication to ease of installation. All of this gives a total function-point count. Use this with Jones’ First-Order Estimation Practice, or compare to previous projects for an estimate

Calculate TUPF Example System Components

Calculate Function Points Step 2 – Calculate Total Processing Complexity: Overall complexity > Sum of its parts 0=no effect on processing complexity 3= great effect on processing complexity

Calculate Function Points Step 3 - Calculate Adjusted Processing Complexity (APC): • The processing complexity of the simplest project is defined as 0. 65, the normal 1. 00, and the most complex one as 1. 35 Adjusted Project Complexity (APC) = 0. 65 + (0. 01 * Project Complexity) = 0. 65 + (0. 01*7)=0. 72

Calculate Function Points Step 4 - Calculate Total Adjusted Function Points (TAFP): Total Adjusted Function Points (TAFP) = Adjusted Project Complexity * TUFP Processing Complexity (PC): __7______ (From Step 2) Adjusted Processing Complexity (PCA) = 0. 65 + (0. 01 * __7_ ) Total Adjusted Function Points: _0. 72 * _338_ = 243 (TUFP -- From Step 1)

Converting Function Points to Lines of Code Language C COBOL JAVA C++ Turbo Pascal Visual Basic Power. Builder HTML Packages (e. g. , Access, Excel) Lines of Codes per Function Point 130 110 55 50 50 30 15 15 10 -40 Source: Capers Jones, Software Productivity Research

Converting Function Points to Lines of Code Calculate the lines of codes: Total Lines of Codes = Function points * Lines of code per function point in the chosen language Example: If you chose C, then 243 function Points times 130 lines of code = 31, 590 total lines of code

Function Point Estimation Step Two – Estimate Effort Required • Function of size and production rate • COCOMO model (Effort in = 1. 4 * thousands-of-lines-of-code Person Months) Example: If LOC = 10000 Then. . . Effort = (1. 4 * 10) = 14 Person Months

Function Point Estimation Step Three - Schedule Time Rule of thumb for estimation Schedule Time (months) = 3. 0 * person-months (1/3 is the exponent) Example: Effort = 14 person-month Schedule time =3. 0*141/3=7. 2 months

Estimation tips • • • Allow time for the estimate Use data from previous projects Use developer-based estimates Estimate by walk-through Estimate by categories Estimate at a low-level of detail Don’t omit common tasks Use software estimation tools (Cross. Talk) Use several different techniques, and compare the results • Change estimation practices as the project progresses

CREATING AND MANAGING THE WORK PLAN

A Workplan Example Work Plan Information Example Name of task Start date Completion date Person assigned Deliverable(s) Completion status Priority Resources needed Estimated time Actual time Perform economic feasibility Jan 05, 2005 Jan 19, 2005 Project sponsor: Mary Smith Cost-benefit analysis Open High Spreadsheet 16 hours 14. 5 hours

Identifying Tasks • Methodology – Using standard list of tasks • Top-down approach – Identify highest level tasks – Break them into increasingly smaller units – Organize into work breakdown structure

Project Workplan • List of all tasks in the work breakdown structure, plus – Duration of task – Current task status – Task dependencies – Milestone (dates)

Tracking Project Tasks • Gantt Chart – Bar chart format – Useful to monitor project status at any point in time • PERT Chart – Flowchart format – Illustrate task dependencies and critical path

Tracking Tasks Using Gantt Chart Task Week 2 3 4 5 6 7 8 9 10 11 12 13


Tracking Tasks Using PERT Chart

Margins of Error in Cost and Time Estimates

Managing Scope • • Scope creep JAD and prototyping Formal change approval Defer additional requirements as future system enhancements

Timeboxing • Fixed deadline • Reduced functionality, if necessary • Fewer “finishing touches”

Timeboxing Steps 1. 2. 3. 4. 5. 6. Set delivery date – Deadline should not be impossible – Should be set by development group Prioritize features by importance Build the system core Postpone unfinished functionality Deliver the system with core functionality Repeat steps 3 -5 to add refinements and enhancements

STAFFING THE PROJECT

Staffing Attributes • Staffing levels will change over a project’s lifetime • Adding staff may add more overhead than additional labor • Using teams of 8 -10 reporting in a hierarchical structure can reduce complexity

Increasing Complexity with Larger Teams

Your Turn • How do you know how many people to assign to a project? • How do you know what special skills will be needed for completion of the project?

Key Definitions • The staffing plan describes the kinds of people working on the project • The project charter describes the project’s objectives and rules • A functional lead manages a group of analysts • A technical lead oversees progress of programmers and technical staff members

Motivation • Use monetary rewards cautiously • Use intrinsic rewards – – – Recognition Achievement The work itself Responsibility Advancement Chance to learn new skills

Handling Conflict • • • Clearly define project plans Recognize project importance to organization Project charter listing norms and groundrules Develop schedule commitments ahead of time Forecast other priorities and their possible impact on the project

COORDINATING PROJECT ACTIVITIES

CASE Tools Planning Analysis Upper CASE Design Implementation Lower CASE Integrated CASE (I-CASE)

CASE Components Diagrams Screen Designs CASE Repository Procedural Logic Metadata

Standards • Examples – Formal rules for naming files – Forms indicating goals reached – Programming guidelines

Documentation • Project binder • Table of contents • Continual updating

Managing Risk • Risk assessment • Actions to reduce risk • Revised assessment


Classic Mistakes • • Overly optimistic schedule Failing to monitor schedule Failing to update schedule Adding people to a late project

Summary • Project management is critical to successful development of new systems • Project management involves planning, controlling and reporting on time, labor, and costs.

Copyright © 2006 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.
- Slides: 52