Project Management
Chapters 3-4
Can you develop this?
Basic Definitions: Project and Project Plan
Software Project:
All technical and managerial activities required to deliver the deliverables to the client. A software project has a specific duration, consumes resources and produces work products. Management categories to complete a software project:
Tasks, Activities, Functions
Software Project Management Plan:
The controlling document for a software project. Specifies the technical and managerial approaches to develop the software product. Companion document to requirements analysis document:
Changes in either document may imply changes in the other document.
The SPMP may be part of the project agreement.
Components of a Project
Project
Work Product
Schedule
Task
Participant
A More Complex Model
Equipment Project * Resource Work Breakdown Structure * * consumes Work depends Set of Work Products Work Product * desWork cribes Package * Facility Fund Organization
Schedule * * Outcome produces
* Organizational responUnit * sible plays for Role Participant Staff
Activity
Task
Internal Work Product
Project Deliverable
Project Function
Department
Team
States of a Project
Conception do/FormulateIdea do/Cost-BenefitAnalysis do/FeasibilityStudy do/Review Termination do/Client Acceptance do/Delivery do/Post Mortem GoAhead ScopeDefined Start do/Infrastructure Setup do/Skill Identification do/Team Formation do/Project Kickoff
Definition do/Problem Statement do/Software Architecture do/Software Plan New Need New Technology
System Done
Infrastructure Setup Steady State Completed do/Develop System && Teams do/Controlling Assembled do/Risk Management do/Replanning
Capability Maturity Model
Model produced by the Software Engineering Institute to rate an organizations software development process Level 1: Initial - Lowest level, chaotic Level 2: Repeatable Project tracking of costs, schedule, and functionality. Able to repeat earlier successes. Level 3: Defined A documented and standardized software process. All development accomplished using the standard processes. Level 4: Managed Quantitatively manages the process and products. Level 5: Optimizing Uses the quantitative information to continuously improve and manage the software process.
Personal Software Process
Can use the CMM idea and apply it to an individual software developer. Watts Humphrey developed PSP in 1997.
Use personal time logs to measure productivity; errors timed and recorded
Date 1/1 1/3 1/4 1/5 Start 09:00 09:00 09:00 12:00 Stop 15:30 14:00 11:30 02:00 Delta 360 270 150 120 Interrupt 30 lunch 30 lunch Task 50 LOC 60 LOC 50 LOC Testing
900 minutes to write/test a program of 160 LOC. Assuming 5 hrs/day this is 3 days to write/test 160 LOC. Productivity = 53 LOC/day
Earned Value Analysis
Basic measures to calculate how much has been accomplished
Percent of the estimated time that has been completed
Basic Measures
Budgeted Cost of Work (BCW)
The estimated effort for each work task
Budgeted Cost of Work Scheduled (BCWS)
The sum of the estimated effort for each work task that was scheduled to be completed by the specified time
Budget at Completion (BAC)
The total of the BCWS and thus the estimate of the total effort of the project
Earned Value Analysis
Basic Measures
Planned Value (PV)
PV = BCW/BAC The percentage of the total estimated effort assigned to a particular work task
Budgeted Cost of Work Performed (BCWP)
The sum of the estimated efforts for the work tasks completed by the specified time
Actual Cost of Work Performed (ACWP)
Sum of the actual efforts for the work tasks that have been computed
Earned Value Analysis
Progress Indicators
Earned Value (EV) or Percent Complete (PC)
EV = BCWP/BAC The sum of the Planned Value for all completed work tasks
Schedule Performance Index (SPI)
SPI = BCWP / BCWS 100% = perfect schedule
Schedule Variance (SV)
SV = BCWP BCWS Negative is behind schedule, Positive ahead
Earned Value Analysis
Progress Indicators
Cost Performance Index (CPI)
CPI = BCWP / ACWP 100% = perfect cost
Cost Variance (CV)
CV = BCWP ACWP Negative is behind on cost, positive ahead on cost
Earned Value Analysis Example
Task 1 2 3 4 5 6 Estimated Effort Actual Effort To Estimated (days) Date Completion 5 25 120 40 60 80 10 20 80 50 50 70 1/25 2/15 5/15 4/15 7/1 9/1 4/1 Actual Completion 2/1 2/15
Today is 4/1 BAC = sum of estimations = 5 + 25 + 120 + = 330 days BCWP = estimate of completed work = 5 + 25 + 40 = 70 days EV or PC = 70/330 = 21.2% BCWS = sum of estimates scheduled to be done = 5+25 = 30 SPI = BCWP/BCWS = 70/30 = 233% SV = 70 30 = 40 days (ahead) ACWP = sum of actual work done = 10+20+50 = 80 CPI = BCWP / ACWP = 70/80 = 87.5% CV = BCWP ACWP = 70-80 = -10 programmer days (behind)
Track Status Over Time
Comparison of planned costs against actual costs allows the manager to assess the health of the project Earned value adds the planned costs of the tasks that have been completed
Planned cost
Earned value
Actual cost
Time Current time
Other Measurement Tools
Error Tracking
We generally expect error rates to go down over time
Postmortem Reviews
Assemble key people to discuss quality, schedule, software process. Results should not be sanitized.
Project Management Concepts
Follow critical / best practices Divide and conquer approach generally taken to decompose work into smaller, more manageable pieces Key Tasks
Hierarchical representation of all the tasks in a project called the Work Breakdown Structure (WBS) Task model or Network model Mapping of the task model to the project schedule Development of a Software Project Management Plan (SPMP)
Work Packages
Work packages are assignment to participants to do the work
Small work package: an action item Larger work packages:
Create the object model Class diagram Etc.
Any work product delivered to the customer is a deliverable; All other work products are internal work products
Work Breakdown Structure
Simple hierarchical model of the work to be performed; uses aggregation only
Work Breakdown Structure * Work *
Task
Activity
Creating Work Breakdown Structures
Two major philosophies
Activity-oriented decomposition ("Functional decomposition")
Write the book Get it reviewed Do the suggested changes Get it published
Result-oriented ("Object-oriented decomposition")
Chapter 1 Chapter 2 Chapter 3
Which one is best for managing? Depends on project type:
Development of a prototype Development of a product Project team consist of many unexperienced beginners Project team has many experienced developers
Estimates for establishing WBS
Establishing an WBS in terms of percentage of total effort:
Small project (7 person-month): at least 7% or 0.5 PM Medium project (300 person-month): at least 1% or 3 PMs Large project (7000 person-month): at least 0.2 % or 15 PMs (From Barry Boehm, Software Economics)
Example: Lets Build a House
What are the activities that are needed to build a house?
Typical activities when building a house
Surveying Excavation Request Permits Buy Material Lay foundation Build Outside Wall Install Exterior Plumbing Install Exterior Electrical Install Interior Plumbing Install Interior Electrical Install Wallboard Paint Interior Install Interior Doors Install Floor Install Roof Install Exterior Doors Paint Exterior Install Exterior Siding Buy Pizza
Finding these activities is a brainstorming activity. It requires similar activities used during requirements analysis
Hierarchical organization of the activities
Building the house consists of
Prepare the building site Building the Exterior Building the Interior
Preparing the building site consists of
Surveying Excavation Buying of material Laying of the foundation Requesting permits
Partial Work Breakdown Structure
Build Foundation Build Structure Build Walls Build Roof Install Sewer Pipes Build House:WBS Install Plumbing Install Cold & Hot Water Pipes Install Tubs & Sinks Install Heating Install Electric
From the WBS to the Dependency Graph
The work breakdown structure does not show any temporal dependence among the activities/tasks
Can we excavate before getting the permit? How much time does the whole project need if I know the individual times?
What can be done in parallel?
Are there any critical actitivites, that can slow down the project significantly?
Temporal dependencies are shown in the dependency graph
Nodes are activities Lines represent temporal dependencies
Building a House (Dependency Graph)
The activity "Buy Material" must Precede the activity "Lay foundation"
Install Interior Plumbing Install Interior Electrical Install Wallboard Paint Interior
Install Flooring
Install Interior Doors
START
Survey ing
Excava tion
Buy Material
Lay Founda tion
Build Outside Wall
FINISH Install Roofing Install Exterior Doors
Request Paint Exterior
Install Exterior Plumbing
Install Exterior Electrical
Install Exterior Siding
Map tasks onto time
Estimate starting times and durations for each of the activities in the dependency graph Compute the longest path through the graph: This is the estimated duration of your project
PERT
PERT = Program Evaluation and Review Technique Developed in the 50s to plan the Polaris weapon system in the USA. PERT allows the manager to assign optimistic, pessimistic and most likely estimates for the span times of each activity. You can then compute the probability to determine the likelihood that overall project duration will fall within specified limits.
PERT Diagram Notation
Activity ANodeiseitheraneventoranactivity. Distinction:Eventshavespantime0
A tA=0
Event(Milestone orDeliverable)
tB=2
C tC=0
Event(Milestone orDeliverable)
Milestoneboxesareoftenhighlightedbydoublelines
RAD available t=0
t=2weeks
SystemDesign
SDD available t=0
Example of a Node Diagram
Activity1
t1=5
Activity2
t2=1
Start t=0
End t=0
Activity3
Activity4
t3=1
t4=3
Activity5
5=2
What do we do with these diagrams?
Compute the project duration Determine activities that are critical to ensure a timely delivery Analyze the diagrams
to find ways to shorten the project duration To find ways to do activities in parallel
2 techniques are used
Forward pass (determine critical paths) Backward pass (determine slack time)
Definitions: Critical Path and Slack Time
Critical path:
A sequence of activities that take the longest time to complete The length of the critical path(s) defines how long your project will take to complete.
Noncritical path:
A sequence of activities that you can delay and still finish the project in the shortest time possible.
Slack time:
The maximum amount of time that you can delay an activity and still finish your project in the shortest time possible.
Example of a critical path
Activity1
t1=5
Activity2
t2=1
Start t=0
End t=0
Activity3
Activity4
t3=1
t4=3
Activity5
5 t5=2
Criticalpathinboldface
Definitions: Start and Finish Dates
Earliest start date:
The earliest date you can start an activity
Earliest finish date:
The earliest date you can finish an activity
Latest start date:
The latest date you can start an activity and still finish the project in the shortest time.
Latest finish date:
The latest date you can finish an activity and still finish the project in the shortest time.
2 Ways to Analyze Dependency Diagrams
Forward pass: Goal is the determination of critical paths
Compute earliest start and finish dates for each activity Start at the beginning of the project and determine how fast you can complete the activites along each path until you reach the final project milestone.
Backward pass: Goal the determination of slack times
Compute latest start and finish dates activity Start at the end of your project, figure out for each activity how late it can be started so that you still finish the project at the earliest possible date.
To compute start and finish times, we apply 2 rules
Rule 1: After a node is finished, we can proceed to the next node(s) that is reachable via a transition from the current node. Rule 2: To start a node all nodes must be complete from which transitions to that node are possible.
Forward Path Example
ProjectDuration=7
Activity1
t1=5
Activity2
t2=1
Start t=0
End t=0
Activity4 Activity5
Activity3
tA=1 3
tA=3 4
t5=2
Activity A1 A2 A3 A4 A5
Earliest Start(ES) Start of week 1 Start of week 6 Start of week 1 Start of week 2 Start of week 6
Earliest Finish(EF) End of week 5 End of week 6 End of week 1 End of week 4 End of week 7
Backward Path Example
ProjectDuration=7
Activity1
t1=5
Activity2
t2=1
Start t=0
End t=0
Activity4 Activity5
Activity3
tA=1 3
tA=3 4
t5=2
Activity
A1 A2 A3 A4 A5
Latest Start(LS)
Start of week 1 Start of week 7 Start of week 2 Start of week 3 Start of week 6
Latest Finish(LF)
End of week 5 End of week 7 End of week 2 End of week 5 End of week 7
Computation of slack times
Slack time ST of an activity A:
STA = LSA - ESA Subtract the earliest start date from the latest start date for each activity Example: STA4 = 3 - 2 = 1 Slack times on the same path influence each other. Example: When Activity 3 is delayed by one week, activity 4 slack time becomes zero weeks.
Activity1
Activity A1 A2 A3 A4 A5
Slacktime 0 1 1 1 0
t1=5
Activity2
Start t=0
t2=1
s1= 0
s2= 1
Activity4 Activity5
End t=0
Activity3
tA=1
tA=3 4
t5=2
s3= 1
s4= 1
s5= 0
Building a House (PERT Chart)
Each Activity has a start time and an estimated duration
12/3/05 12/21/05 1/11/06 Install Wallboard 0 9 1/22/06 Paint Interior 0 11 2/8/06 Install Interior Doors 0 7 Install Interior Plumbing 0 12 Install Interior Electrical 0 15
Determination of total project time Determination of the critical path Determination of slack times
8/27/05 8/27/05 START 0 0 8/27/05 Request Permits 0 15 12/3/05 Start Time 8/29/05 Legend Duration Slack Time 0 0 12 10 12/17/05 12/31/05 9/17/05 Survey ing 12 3 10/1/05 Excava tion 0 10 10/15/05 11/5/05 Lay Founda tion 0 15 Build Outside Wall 0 20 Buy Material 0 10
1/22/06
Install Flooring 0 18 Install Roofing 12 9 1/12/06 Paint Exterior 12 5 Install Exterior Plumbing Install Exterior Electrical 12 10 Install Exterior Siding 12 8
2/16/06 FINISH
1/19/06
1/19/06
0 Install 0 Exterior Doors 15 6
Gantt Chart
Activity1 Activity2 Activity3 Activity4 Activity5
Easy to read
Time(inweeksafterstart)
Gantt Chart with Milestones
ProjectStart Activity1 Activity2 Activity3 DesignReview Activity4 Activity5 ProjectFinish 0
Good for reviews.
Time(inweeksafterstart)
Two Types of Gantt Charts
Person-Centered View
To determine peoples load
Joe Mary Toby Clara A1 A3 A3 Time A1 A2 A3 A1 A2 A3
Activity-Centered View
To identify teams working together on the same tasks
Joe,Toby Joe Clara,Toby,Joe Time
Chooseoneview,staywithit.UsuallybasetheviewontheWBSstructure ManagingExperiencedTeams:Personcenteredview ManagingBeginners:Activityorientedview
Heuristics for WBS
The project manager may find the following heuristics useful to create the work breakdown structure
Reuse an existing WBS
Consult people who have worked on similar projects
Involve key developers
Developers with knowledge in the solution domain should participate in the development If they join after the WBS is developed they should be able to review and critique it
Identify work gaps.
All work to be performed must be mapped onto tasks Work associated with an activity must be addressed by at least one task
Identify work overlaps
The same task should not be included in more than one activity
Creating the Initial Schedule
Impossible to generate a precise schedule for the entire project at the beginning of the project One solution: initial schedule with deadlines mutually agreed by the client and project manager Detailed for the first few weeks of the project
Kick-off meetings Initial team meetings Tutorials Individual teams could start working on a revision of the initial schedule after the initial team meetings
Organizing the Project
The project manager needs to address the communication infrastructure
Scheduled modes of communication
Planned milestones, review, team meetings, inspections, etc. Best supported by face-to-face communications
Event-based modes of communication
Problem reports, change requests, etc. Usually arise from unforeseen problems or issues E-mail, groupware, web databases the best mechanisms
Identifying Skills
Skills for a software development project
Application domain skills Communication skills Technical skills Quality skills Management skills
Assign management, technical roles 3-5 team members the best size for a group
Kick-off Meeting
Project manager, team leaders, and the client officially start the project in a kick-off meeting with all developers present Purpose: Share information about the scope of the project, communication infrastructure, and responsibilities of each team Presentation split between client and project manager
Client: Requirements and scope of the project Project manager: Project infrastructure, top-level design, and team responsibilities
Project Agreement
Document that formally defines the scope, duration, cost, and deliverables
Contract or statement of work, business plan, or charter Typically finalized after the analysis model is stabilized
Should contain
List of deliverables Criteria for demonstrations of functional requirements Criteria for demonstration of nonfunctional requirements Criteria for acceptance
Represents the baseline of the client acceptance test Changes in the functionality, deadlines, or budget requires renegotiation of the project agreement
Controlling the Project
The project manager must collect information to make effective decisions in the steady state phase of the project Tools to collect information
Meetings
Periodic status meetings, milestones, project reviews, code inspections, prototype demonstrations
Metrics
Lines of code, branching points, modularity Defects, mean time between failures
Software Cost Estimation
How many resources to complete the project?
For big projects, expressed in Programmer Months Older approach: LOC estimation Newer approach: Counting Function Points
LOC Estimation
Estimate number of lines of code in the finished project
Use prior experience, similar products, etc.
Standard approach:
For each piece i, estimate the max size, min size, and best guess. The estimate for the each piece is 1/6*(max + 4*guess + min)
Part 1 2 3 Min 20 10 25 Guess 30 15 30 Max 50 25 45 Whole = (20+4*30+50)/6 + (10+4*15+25)/6 + (25+4*30+45)/6 = 79 LOC
COCOMO
COCOMO = Constructive Cost Model, developed by Boehm in the 70s
Used thousands of delivered lines of code to determine a relationship between size and cost in Programmer Months (PM) App Programs: PM = 2.4*(KLOC)1.05 Utility Programs: PM = 3.0*(KLOC)1.12 Systems Programs: PM = 3.6*(KLOC)1.20
General LOC Estimation
In general: Cost = A * KLOCB + C where A,B,C are constants Can determine these values regressively if you measure your own efforts: Project 1 2 3 4 5 KLOC 50 80 40 10 20 Effort (PM) 120 192 96 24 48
Function Point Analysis
Identify and quantify the functionality required for the project. Some possibilities, but no standards for what is considered a function point:
Inputs
Logical input, not individual fields
Outputs
Displays of application dtaa
Inquiries
Request/response pairs
Internal files
Number of logical files
External interfaces
Data shared with other programs
Function Point Analysis
Individual function points classified as simple, average, or complex, and weights are summed
Simple Outputs Inquiries Inputs Files 4 3 3 7 Average 5 4 4 10 7 Complex 7 6 6 15 10
Interfaces 5
Correlate total with PM; can capture effort for hidden items (e.g. one output, lots of internal work)
Conclusion
Software Project Managers have a lot of challenging work that shouldnt be ignored
Unlike the Pointy Haired Boss Must deal with project outcomes, schedules, work products, work breakdown schedule, and resources Development of a Software Project Management Plan
Project managers can deal with project complexity the same way developers deal with system complexity
Modeling of the domain Communication Analysis Planning