Beruflich Dokumente
Kultur Dokumente
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
How it often goes
Requirements
Analysis
D
E
L
A
Y
Vaporware
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6
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 7
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 8
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 9
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 10
Project kickoff
Steady state
Termination
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 11
Project: Functions, Activities and Tasks
f1:Function
p:Project
f2:Function
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12
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 14
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 16
Task Sizes
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 17
Examples of Tasks
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 18
Action Item
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 19
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 20
Activities
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 21
Examples of Activities
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 22
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 23
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 24
SPMP Part 1: Introduction
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 25
SPMP Part 2: Project Organization
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 26
Process Model
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 27
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 28
Project Roles
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 29
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 30
Promoter Roles
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 31
Power Promoter
♦ Also called executive champion
♦ Pushes the change through the existing organizational hierarchy.
not necessarily at the top of the organization, but must have
protection from top level management, otherwise project
opponents might be able to prevent the success of the project.
♦ Tasks:
constantly identify difficulties, resolve issues, and
communicate with the project members, especially with the
developers.
♦ Example at project level: Project Manager.
♦ Example at corporate level: Chief Executive Officer (CEO).
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 32
Knowledge Promoter
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 33
Process Promoter
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 34
Project Management: Hierarchical Project
Organization
Control Flow
Information Flow Chief Executive
A B
Project Members
Basis
Basisof
oforganization:
organization:
Complicated
Complicatedinformation
informationand
andcontrol
controlflow
flow
across
acrosshierarchical
hierarchicalboundaries
boundaries
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 35
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 36
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 37
Project-Based Project Organization
Project
Leader
Coaches
A B Team
Members
Basis
Basisof
oforganization:
organization:
Nonlinear
Nonlinearinformation
informationflow
flowacross
across dynamically
dynamicallyformed
formedunits
units
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 38
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 39
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 40
Hierarchical Structure
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 41
Project-Based Structure
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 42
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
Person B
• Item 7
• 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 43
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 44
Team Formation
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 45
Project Roles: Coach
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 46
Project Role: Group leader
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 47
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 48
Project Role: Liaison
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 49
Project Role: Planner
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 50
Project Role: Document Editor
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 51
Web Master
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 52
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 53
SPMP Part 3: Managerial Processes
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 54
Examples of Assumptions
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 55
Examples of Dependencies
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 56
Examples of Constraints
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 57
Risk Management
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 58
SPMP Part 4: Technical Process
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 59
SPMP Part 5: Work Elements
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 60
Creating Work Packages
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 61
WBS Trade-offs
Cost
(Time, $$)
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 62
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 63
Project Management Tools for Work Packages
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 64
Project: Building a House
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 65
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 66
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 67
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 68
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 69
How do you become a good project planner?
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 70
Writing the SPMP
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 71
Project Management Heuristics
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 72
Project Management Summary
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 73