Upload
anastasia-riley
View
221
Download
1
Tags:
Embed Size (px)
Citation preview
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. Identifying project size
2. Creating and managing the workplan
3. Staffing the project
4. Coordinating project activities
1. IDENTIFYING PROJECT 1. IDENTIFYING PROJECT SIZESIZE
Project Manager’s Balancing Act
Project Management involvesmaking trade-offs… Project Size
Pro
ject C
ost
Proj
ect Ti
me
Modifying one elementrequires 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.
• Inputs
• Outputs
• Inquiries
• Internal Logical Files
• External Interface Files
Input Inquiry
Output
InternalLogical
Files
External Interface
File
Five key components are identified based on logical user view
Application
The Function Point Methodology
USER
LIST OF MOLDSWORK CENTERS
PARTS
PLANT MOLDS
PLANT INFORMATION CENTER
USER
BILL OF MATERIALS
PARTS LISTING
USER
ORDERPARTS
USER
CHANGEBILL
Inquiries
Internal Logical Files
Output
Inputs
InterfaceVENDORSUPPLY
VENDOR INFORMATION
Logical View of User Requirements
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 MultipliersFunction Points
Program Low Medium HighCharacteristic Complexity Complexity ComplexityNumber of inputs 3 4 6Number of outputs 4 5 7Inquiries 3 4 6Logical internal files 7 10 15External interface files 5 7 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 ofinstallation.
All of this gives a total function-point count.Use this with Jones’ First-Order Estimation Practice, orcompare to previous projects for an estimate
Calculate TUPF ExampleSystem Components
Calculate Function PointsStep 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
Adjusted Project Complexity (APC)= 0.65 + (0.01 * Project Complexity)= 0.65 + (0.01*7)=0.72
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
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
Source: Capers Jones, Software Productivity Research
LanguageLines of Codes per Function Point
CCOBOLJAVAC++Turbo PascalVisual BasicPowerBuilderHTMLPackages (e.g., Access, Excel)
130110 55 50 50 30 15 1510-40
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-codePerson 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 (CrossTalk) • Use several different techniques, and compare the
results• Change estimation practices as the project progresses
CREATING AND MANAGING CREATING AND MANAGING THE WORK PLANTHE WORK PLAN
A Workplan Example
Work Plan Information Example
Name of task Perform economic feasibilityStart date Jan 05, 2005Completion date Jan 19, 2005Person assigned Project sponsor: Mary SmithDeliverable(s) Cost-benefit analysisCompletion status OpenPriority HighResources needed SpreadsheetEstimated time 16 hoursActual time 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
Go to Library
Go to Bookstore
Select and Purchase Book
Skim Book
Write Phase One
Read Book Carefully
Write Phase Two
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. Set delivery date– Deadline should not be impossible– Should be set by development group
2. Prioritize features by importance3. Build the system core4. Postpone unfinished functionality5. Deliver the system with core functionality6. Repeat steps 3-5 to add refinements and
enhancements
STAFFING THE PROJECTSTAFFING 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 COORDINATING PROJECT ACTIVITIESACTIVITIES
CASE Tools
Planning Analysis Design Implementation
Upper CASE Lower CASE
Integrated CASE (I-CASE)
Procedural MetadataLogic
Diagrams ScreenDesigns
CASE Repository
CASE Components
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 © 2006John 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.