Professional Documents
Culture Documents
Ch11lect Project Management
Ch11lect Project Management
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2
Reference:
Bruegge&Dutoit, Chapter 12
http://notesbruegge.in.tum.de/PAID2/schedule/ProjectManagement011599.pdf
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3
Laws of Project Management
Projects progress quickly until they are 90% complete.
Then they remain at 90% complete forever.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4
How it should go
Requirements
Analysis
Design
Implementation
System Testing
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5
Software Project Management 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
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6
Project Agreement
Document written for a client that defines:
the scope, duration, cost and deliverables for the project.
the exact items, quantities, delivery dates, delivery location.
Can be a contract, a statement of work, a business plan, or a
project charter.
Client: Individual or organization that specifies the
requirements and accepts the project deliverables.
Deliverables (= Work Products that will be delivered to the
client):
Documents
Demonstrations of function
Demonstration of nonfunctional requirements
Demonstrations of subsystems
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7
Project Agreement vs Problem Statement
Problem
Statement Software Project
Management Plan
Project
Agreement
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8
Project Management Activities
(continued on next slide)
Initiation
Problem statement
definition
Communication
Team formation infrastructure setup
Project kickoff
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9
Project kickoff
Steady state
Termination
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10
Project: Functions, Activities and Tasks
f1:Function
p:Project
f2:Function
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 11
Functions
Activity or set of activities that span the duration of the project
f1:Function
p:Project
f2:Function
Examples:
Project management
Configuration Management
Documentation
Quality Control (Verification and validation)
Training
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 13
Tasks
f1:Function
p:Project
f2:Function
• Smallest unit
a1:Activity a2:Activity of work subject
to management
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 15
Task Sizes
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 16
Examples of Tasks
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 17
Action Item
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 18
Activities
f1:Function
p:Project
f2:Function
a1:Activity a2:Activity
• Major unit of work
with precise dates
a2.1:Activity a2.2:Activity
• Consists of smaller
activities or tasks
t1:Task t2:Task t3:Task
• Culminates in project
milestone.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 19
Activities
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 20
Examples of Activities
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 21
Structure of a Software Project Management Plan
Front Matter
1. Introduction
2. Project Organization
3. Managerial Process
4. Technical Process
5. Work Elements, Schedule, Budget
Optional Inclusions
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 22
SPMP Part 0: Front Matter
Title Page
Revision sheet (update history)
Preface: Scope and purpose
Tables of contents, figures, tables
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 23
SPMP Part 1: Introduction
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 24
SPMP Part 2: Project Organization
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 25
Process Model
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 26
Example of an Organization Chart
Architecture Logbook
HCI
Maintenance
Web Master
Documentation Vehicle
VIP
Infrastructure Team
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 27
Project Roles
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 28
Project Roles
Management roles
Organization and execution of the project within constraints. Examples:
project manager, team leader.
Development roles
Specification, design and construction of subsystems. Examples: Analyst,
system architect, implementor.
Cross functional roles
Coordination of more than one team. Example: API Engineer,
configuration manager, tester
Consultant roles
Support in areas where the project participants lack expertise. Examples:
End user, client, application domain specialist ( problem domain), technical
consultant (solution domain).
Promoter roles
Promote change through an organization.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 29
Promoter Roles
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 30
Power Promoter
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 31
Knowledge Promoter
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 32
Process Promoter
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 33
Project Management: Hierarchical Project
Organization
Control Flow
Information Flow Chief Executive
A B
Project Members
Basis of organization:
Complicated information and control flow
across hierarchical boundaries
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 34
Example of Hierchical Organization:
Chief Programmer Team
Chief Programmer
Assistant
Chief Programmer
Junior Programmer
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 35
Another Project Organization:
Egoless Programming Team (Weinberg)
Analyst
Tester Programmer
Designer Librarian
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 36
Project-Based Project Organization
Project
Leader
Coaches
A B Team
Members
Basis of organization:
Nonlinear information flow across dynamically formed units
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 37
Associations in organizational structures
Reporting association:
Used for reporting status information
Decision association
Used for propagating decisions
Communication association
Used for exchanging information needed for decisions (e.g.,
requirements, design models, issues).
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 38
Observations on Management Structures
Hierarchical structures
“Reports”, “Decides” and “Communicates-With” all mapped on
the same association
Do not work well with iterative and incremental software
development process
Manager is not necessarily always right
Project-based structures
“Reports”, “Decides” and “Communicates-With”are different
associations
Cut down on bureaucracy reduces development time
Decisions are expected to be made at each level
Hard to manage
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 39
Hierarchical Structure
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 40
Project-Based Structure
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 41
Assigning Responsibilities To People
Team A
“To Do” List for the Project
Role 1
Person A
• Item 1 Item 1
• Item 2 Item 2
Item 9 Role 1
• Item 3
• Item 4 Role 2 Role 2
Item 4
• Item 5
Item 5
• Item 6
Item 7
• Item 7 Person B
• Item 8
Role 3
• Item 9
Item 3 Role 3
Item 6
Item 8
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 42
Possible Mappings of ToDos to People
One-to-One
Ideal but often not worth to be called a project
Many-to-Few
Each project member assumes several roles ("hats")
Danger of overcommittment
Need for load balancing
Many-to-"Too-Many"
Some people don't have significant roles
Bystanders
Loosing touch with project
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 43
Team Formation
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 44
Project Roles: Coach
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 45
Project Role: Group leader
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 46
Group Leader: Create an Agenda
Purpose of Meeting
Desired Outcome
Information Sharing
Information Processing
Meeting Critique
Action Items
(Check Previous
Meeting)
Issues
(Check Previous
Meeting & BBoards)
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 47
Project Role: Liaison
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 48
Project Role: Planner
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 49
Project Role: Document Editor
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 50
Web Master
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 51
Web Master:
Publish Meeting Information on Team Homepage
Must contain Agenda, minutes, action items and issues
Possibilities:
One HTML document per meeting, with anchors (maintained by one role)
Separate HTML documents for Agenda, Minutes, etc (maintained by
several roles)
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 52
SPMP Part 3: Managerial Processes
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 53
Examples of Assumptions
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 54
Examples of Dependencies
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 55
Examples of Constraints
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 56
Risk Management
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 57
SPMP Part 4: Technical Process
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 58
SPMP Part 5: Work Elements
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 59
Creating Work Packages
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 60
WBS Trade-offs
Cost
(Time, $$)
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 61
Dependencies and Schedule
(SPMP Section 5.2 + 5.5)
An important temporal relation: “must be preceded by”
Dependency graphs show dependencies of the tasks
(hierarchical and temporal)
Activity Graph:
Nodes of the graph are the project milestones
Lines linking the nodes represent the tasks involved
Schedule Chart (MS-Project):
Nodes are tasks and milestones
Lines represent temporal dependencies
Estimate the duration of each task
Label dependency graph with the estimates
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 62
Project Management Tools for Work Packages
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 63
Project: Building a House
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 64
Activity 2: Building a House, ctd
Activity 2.2: Building the exterior Activity 2.3 : Finishing the Interior
Task 2.2.1: Foundation Task 2.3.1: Interior
Task 2.2.2: Outside Walls plumbing
Task 2.2.3: Exterior Task 2.3.2: Interior electrical
plumbing work
Task 2.2.4: Exterior Task 2.3.3: Wallboard
electrical work Task 2.3.4: Interior painting
Task 2.2.5: Exterior siding Task 2.3.5: Floor covering
Task 2.2.6: Exterior painting Task 2.3.6: Doors and
Task 2.2.7: Doors and fixtures
Fixtures
Task 2.2.8: Roof
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 65
Activity Graph for Activity “Building a House”
START
2.3 3.1
Install Exterior Electrical Install Interior Electrical
2.4 3.2
Install Exterior Siding Install Wallboard
2.5 3.3
Paint Exterior Install Flooring Paint Interior
2.6 3.4 3.5
Install Exterior Doors Install Roo¼ ng
Install Interior Doors
2.7 2.8 3.6
2.6
FINISH
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 66
PERT Chart Example for "Building a House"
12/3/94 12/21/94 1/11/95
Install Install Install
Interior Interior Wallboard
Plumbing Electrical
Building a House:
0 0 0 1/22/95
12 15 9 Paint
MS Project PERTcy
Interior
Chart with Duration of
Activities (Pfleeger 2.3) 0 2/8/95
11
1/22/95 Install
Interior
Install Doors
Flooring
0
10/15/94 11/5/94 7
8/27/94 8/27/94 9/17/94 10/1/94 0 2/16/95
Lay Build 18
START Survey Excava Buy 1/19/95 FINISH
Founda Outside
ing tion Material
tion Wall Install
0 Roofing 1/19/95 0
0 12 0 0 0
0 10 10 Install 0
3 15 20 12
9 Exterior
Doors
8/27/94
15
Request 1/12/95
6
Permits Paint
0 Exterior
15 12
5
12/3/94 12/17/94 12/31/94
12 12 12
Slack Time 0 8
10 10
Duration 0
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 67
Slack Time and Critical Path
Slack Time
Available Time - Estimated (“Real”) Time for a task or activity
Or: Latest Start Time - Earliest Start Time
Critical Path
The path in a project plan for which the slack time at each task is
zero.
The critical path has no margin for error when performing the
tasks (activities) along its route.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 68
How do you become a good project planner?
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 69
Writing the SPMP
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 70
Project Management Heuristics
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 71
Project Management Summary
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 72