Professional Documents
Culture Documents
Lecture Notes On Project-Management
Lecture Notes On Project-Management
8 September 1994
TUM
14 July 1998
Bernd Bruegge
12
Chapter 1, Introduction Chapter 3, Software Lifecycle Chapter 5, Project Communication Chapter 6, Requirements Elicitation Chapter 7, Requirements Analysis Chapter 9, Design Rationale Chapter 8 System Design Chapter 4 Project Management
Bernd Bruegge
Lecture Today:
w Finish System Design w Project Management (No reading available yet)
Lecture on Wednesday:
w Communication & Meeting Management
u
Reading: Bruegge-Dutoit Ch 5
Reading: Bruegge-Dutoit Ch 3
Bernd Bruegge
Outline of Lecture
v v v v v v v v v v v
Concepts and terminology Purpose of Software Project Management Plans Structure of a Project Management Plan Project responsibilities Team structures Project planning Work breakdown structure Communication Management Dependencies Schedule Project Management Tools
Component-Based Software Engineering 4
Bernd Bruegge
Projects progress quickly until they are 90% complete. Then they remain at 90% complete forever. When things are going well, something will go wrong. When things just cant get worse, they will. When things appear to be going better, you have overlooked something. If project content is allowed to change freely, the rate of change will exceed the rate of progress. Project teams detest progress reporting because it manifests their lack of progress.
Bernd Bruegge
How it should go
Requirements Analysis Design
Implementation
System Testing
Bernd Bruegge
D E L A Y Vaporware
7
Bernd Bruegge
Software Project:
w All technical and managerial activities required to deliver the deliverables to the client. w A software project has a specific duration, consumes resources and produces work products. w Management categories to complete a software project: u Tasks, Activities, Functions
Bernd Bruegge
Project Agreement
v
v v v
Client: Individual or organization that specifies the requirements and accepts the project deliverables. Can be a contract, a statement of work, a business plan, or a project charter. Deliverables (= Work Products that will be delivered to the client:
w w w w Documents Demonstrations of function Demonstration of nonfunctional requirements Demonstrations of subsystems
Bernd Bruegge
10
Bernd Bruegge
11
Functions
v
Activity
Activity
Activity
Functions
v
Examples:
w w w w w Project management Configuration Management Documentation Quality Control (Verification and validation) Training
v v
Question: Is system integration a project function? Mapping of terms: Project Functions in the IEEE 1058 standard are called Integral processes in the IEEE 1074 standard. We call them cross-development processes
Bernd Bruegge
13
Tasks
Function Project Function Smallest unit of work subject to management Small enough for adequate planning and tracking Large enough to avoid micro management
Bernd Bruegge Component-Based Software Engineering 14
Activity
Activity
Activity Activity
Activity Activity
Tasks
v
Completion criteria
w Includes the acceptance criteria for the work products (deliverables) produced by the task.
Bernd Bruegge
15
Task Sizes
v
Bernd Bruegge
16
Examples of Tasks
v v v v v v v v v
Unit test class Foo Test subsystem Bla Write user manual Write meeting minutes and post them Write a memo on NT vs Unix Schedule the code review Develop the project plan Related tasks are grouped into hierarchical sets of functions and activities. Action item
Bernd Bruegge
17
Action Item
v v
Definition: A task assigned to a person that has to be done within a week or less Action items
w Appear on the agenda in the Status Section (See lecture on communication) w Cover: What?, Who?, When?
Bernd Bruegge
18
Activities
Function Project Function
Activity
Activity
Activity
Major unit of work with precise dates Consists of smaller activities or tasks Culminates in project milestone.
Bernd Bruegge
19
Activities
v v
Bernd Bruegge
20
Examples of Activities
v Major
Activities:
v Activities
w Planning w Requirements Analysis w System Design w Object Design w Implementation w System Testing w Delivery
Bernd Bruegge
21
0. Front Matter 1. Introduction 2. Project Organization 3. Managerial Process 4. Technical Process 5. Work Elements, Schedule, Budget Optional Inclusions
Bernd Bruegge
22
Page v Revision sheet (update history) v Preface: Scope and purpose v Tables of contents, figures, tables
Bernd Bruegge
23
Project Overview Project Deliverables Evolution of the SPMP Reference Materials Definitions and Acronyms
Component-Based Software Engineering 24
w Plans for anticipated and unanticipated change w Complete list of materials referenced in SPMP
w Relationships among project elements w Internal management, organization chart w Relations with other entities w Major functions and activities; nature of each; whos in charge
Bernd Bruegge
25
Process Model
v Shows
among
relationships
v Visualization
v
of process model
Project Management Aids w MS Project (Microsoft) w MAC Project (Claris) w EasyTrak (Planning Control International)
w Functions, activities, tasks w Milestones w Baselines w Reviews w Work breakdown structure w Project deliverables w Sign-offs
Bernd Bruegge
26
Client
Management
Consultants
Cross-functional Teams
Development Teams
Infrastructure Team
Bernd Bruegge
27
Infrastructure Team Stephan Schoenig (CMU) Joyce Johnstone (CMU) Andreas Doerner (DB) Arno Schmackpfeffer (DB)
Bernd Bruegge
28
Maintenance Team
Arjun Cholkar Aveek Datta Darren Mauro Joel Slovacek Steve Sprang Vincent Mak Yenni Kwek
Vehicle Team
Andrew Wang Hoda Moustapha Jaewoo You Ognjen Martinovic Paul Stadler Tze Bin Loh William Ferry
Travel Team
Ann Sluzhevsky Bin Zhou Christopher Chiappa Gordon Cheng John Doe Kalyana Prattipati Michael Samuel
VIP Team
Christopher Lumb Eric Farng Idan Waisman Li-Lun Cheng Patrick Toole Phillip Ezolt Venkatesh Natarajan
HCI Team
Darren Mauro Gordon Cheng Idan Waisman Paul Stadler Steve Sprang Tze Bin Loh Yenni Kwek
Bernd Bruegge
Project Responsibilities
v v v v v v v v v v
Planner Analyst Designer Programmer Tester Maintainer Trainer Document Editor Web Master Configuration Manager
v v v v
Bernd Bruegge
30
Project Members Basis of organization: Hierarchical information flow across corporate boundaries
Bernd Bruegge Component-Based Software Engineering 31
Senior Programmer
Librarian
Administration
Tester
Junior Programmer
Bernd Bruegge
32
Tester
Programmer
Designer
Librarian
Bernd Bruegge
33
Project Leader Team Leaders Subsystem Team Subsystem Team Subsystem Team Team Members
w "Ownership" is important
v Hierarchical
information flow does not work well with iterative and incremental software development process
w Manager is not necessarily always right
v Project-based
structures
w Cut down on bureaucracy reduces development time w Decisions are expected to be made at each level w Hard to manage
Bernd Bruegge Component-Based Software Engineering 35
Hierarchical Structure
v Projects
v When?
w The more people on the project, the more need for a formal structure w Customer might insist that the test team be independent from the design team w Project manager insists on a previously successful structure
Bernd Bruegge Component-Based Software Engineering 36
Project-Based Structure
v Project
w Open communication needed among members w Roles are defined on project basis
v When?
Bernd Bruegge
37
Person B
Role 3
Bernd Bruegge
38
w Each project member assumes several roles ("hats") w Danger of overcommittment w Need for load balancing
v Many-to-"Too-Many"
w Some people don't have significant roles w Bystanders w Loosing touch with project
Bernd Bruegge Component-Based Software Engineering 39
to gripes from individual teams v Review weekly team reports v Attend weekly project meetings v Schedule and prepare meetings with client v Insist that guidelines are followed v Assign presentations (in-class project meetings, client review, client acceptance test) v Resolve conflicts if they cannot be resolved otherwise
Bernd Bruegge
40
v The
Bernd Bruegge
Purpose of Meeting Desired Outcome Information Sharing Information Processing Meeting Critique
w Make available public definitions of subsystem developed by the team to the architecture teams (ensure consistency, etc) w Coordinate tasks spanning more than one group with other teams
v Responsible
Bernd Bruegge
43
the activities of an individual team and has the following responsibilities. v Define project plan for team:
w PERT chart, resource table and GANTT chart showing work packages w Enter project plan into MS Project
v Make
project plan available to management v Report group project status to group leader No explicit planner in JAMES. Responsibilities assumed by group leaders
Bernd Bruegge Component-Based Software Engineering 44
proofread and distribute team documentation v Submit team documentation to Architecture team v Collect agendas v Take Minutes at meetings
Bernd Bruegge
45
Web Master
v Maintain
team home page v Keep track of meeting history v Keep track of design rationale
Bernd Bruegge
46
Web Master:
v
Publish Meeting Information on Team Homepage w Must contain Agenda, minutes, action items and issues w Possibilities:
u
One HTML document per meeting, with anchors (maintained by one role) Separate HTML documents for Agenda, Minutes, etc (maintained by several roles)
Agenda Agenda Minutes Minutes Action Items Action Items Issues
Date 9/9/96
Issues
9/16/96
Agenda
Minutes
Action Items
Issues
47
Bernd Bruegge
v v
Bernd Bruegge
48
Examples of Assumptions
v v v v v
There are enough cycles on the development machines Security will not be addressed There are no bugs in the CASE Tool recommended for the project A demonstration of the X system will be given by the client The CAD Model of the seat will be made available by the client
Bernd Bruegge
49
Examples of Dependencies
v
The VIP team depends on the vehicle subsystem provided by the vehicle team The automatice code generation facility in the CASE tool Rose/Java depends on JDK. The current release of Rose/Java supports only JDK 1.0.2
Bernd Bruegge
50
Examples of Constraints
v v v v v v
The length of the project is 3 months. limited amount of time to build the system The project consists of beginners. It will take time to learn how to use the tools Not every project member is always up-to-date with respect to the project status The use of UML and a CASE tool is required Any new code must be written in Java The system must use Java JDK 1.1
Bernd Bruegge
51
Risk Management
v
Risk: One subsystem does not provide the functionality needed by another subsystem.
w Contingency: ?
v v
Bernd Bruegge
52
Bernd Bruegge
53
5.2 Dependencies
w Precedence relations among functions, activities and tasks
5.5 Schedule
w Deadlines, accounting for dependencies, required milestones
Bernd Bruegge
54
Bernd Bruegge
55
WBS Trade-offs
v v
Work breakdown structure influences cost and schedule Thresholds for establishing WBS in terms of percentage of total effort:
w Small project (7 person-month): at least 7% or 0.5 PM w Medium project (300 person-month): at least 1% or 3 PMs w Large project (7000 person-month): at least 0.2 % or 15 PMs
Cost
(Time, $$)
Bernd Bruegge
56
An important temporal relation: must be preceded by Dependency graphs show dependencies of the tasks (hiercharchical and temporal)
w Activity Graph:
u u
Nodes of the graph are the project milestones Lines linking the nodes represent the tasks involved Nodes are tasks and milestones Lines represent temporal dependencies
v v
Estimate the duration of each task Label dependency graph with the estimates
Bernd Bruegge
57
Task Timeline
w Gantt Charts: Shows project activities and tasks in parallel. Enables the project manager to understand which tasks can be performed concurrently.
PERT: Program Evaluation and Review Technique A PERT chart assumes normal distribution of tasks durations Useful for Critical Path Analysis CPM: Critical Path Method
Component-Based Software Engineering 58
Bernd Bruegge
Start Planning Phase Requirements Analysis Phase System Design Phase Analysis Review Object Design Project Review Implementation & Unit Testing Object Design Review System Integration Internal Project Review Client Acceptance
Bernd Bruegge
59
Activity 1: Landscaping the lot w Task 1.1: Clearing and grubbing w Task 1.2: Seeding the Turf w Task 1.3: Planting shrubs and trees Activity 2: Building the House w Activity 2.1 : Site preparation w Activity 2.2: Building the exterior w Activity 2.3: Finishing the interior Activity 2.1 : Site preparation w Task 2.1.1: Surveying w Task 2.1.2: Obtaining permits w Task 2.1.3: Excavating Task 2.1.4: Obtaining materials
Component-Based Software Engineering 60
Bernd Bruegge
Activity 2.2: Building the exterior w Task 2.2.1: Foundation w Task 2.2.2: Outside Walls w Task 2.2.3: Exterior plumbing w Task 2.2.4: Exterior electrical work w Task 2.2.5: Exterior siding w Task 2.2.6: Exteror painting w Task 2.2.7: Doors and Fixtures w Task 2.2.8: Roof
Activity 2.3 : Finishing the Interior w Task 2.3.1: Interior plumbing w Task 2.3.2: Interior electrical work w Task 2.3.3: Wallboard w Task 2.3.4: Interior painting w Task 2.3.5: Floor covering w Task 2.3.6: Doors and fixtures
Bernd Bruegge
61
2.6
Bernd Bruegge
FINISH
62
Building a House:
MS Project PERTcy Chart with Duration of Activities (Pfleeger 2.3)
0 12
Install Flooring 8/27/94 8/27/94 9/17/94 START 0 0 Survey ing 12 3 8/27/94 Request Permits 0 15 12/3/94 Start Time 8/29/94 Legend Slack Time Duration
Bernd Bruegge
10/1/94
10/15/94
Excava tion 0 10
Buy Material 0 10
0 18
12/17/94
0 0
Slack Time
w Available Time - Estimated (Real) Time for a task or activity w Or: Latest Start Time - Earliest Start Time
Critical Path
w 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
64
v v v
Keep track of activities and their duration Determine difference between planned and actual performance Make sure to do a post-mortem
w Lessons learned w Ask developers for feedback w Write a document about what could have been improved
Bernd Bruegge
65
Bernd Bruegge
66
If project goals are unclear and complex use team-based project management. In this case
w Avoid perfect GANTT charts and PERT charts w Dont look too far into the future
v v
Avoid micro management of details Dont be surprise if current project management tools dont work:
w They were designed for projects with clear goals and fixed organizational structures
Bernd Bruegge
67
v v
Bernd Bruegge
68
Communication Management
v v v v v
Communication in distributed Teams Communication Modes Communication Mechanisms Scheduled Communications Communication workflow
w Example: Distributed Document Review with Lotus Notes
Bernd Bruegge
69
A Communication Example
v
"Two missile electrical boxes manufactured by different contractors were joined together by a pair of wires.
Box 1
Pair of Wires
Box 2
Bernd Bruegge
70
Thanks to a particular thorough preflight check, it was discovered that the wires had been reversed."
Box 1
Box 2
Bernd Bruegge
71
... "The postflight analysis revealed that the contractors had indeed corrected the reversed wires as instructed."
Bernd Bruegge
72
Box 1
Box 2
Bernd Bruegge
73
Communication is Important
v Communication
Mode:
Type of information exchange that has defined objectives and scope w Scheduled: Planned Communication w Event Driven:Unplanned Communication
v Communication
Mechanism
Tool or procedure that can be used to transmit or receive information w Synchronous: Sender and Receiver are available at the same time w Asynchronous: Sender and Receiver are not communicating at the same time.
Bernd Bruegge Component-Based Software Engineering 74
Classification of Communication
Communication mode
supports is supported by
Communication mechanism
Scheduled
Event driven
Synchronous
Asynchronous
Client review
Problem reporting
Smoke signals
Fax
Bernd Bruegge
75
Definition
v Project
Analysis Review (October 16, 1997) Object Design Review (November 11 & 13, 1997) Implementation Review (November 25, 1997)
v Client
(Informal)
w Objective: Increase quality of subsystem w Developer presents to team members Informal, peerto-peer
u
Inspection (Formal) w Objective: Compliance with (functional and nonfunctional) requirements w Developer answers questions from the reviewers
u
Bernd Bruegge
77
Review:
w Objective: Find deviations from schedule and correct them or identify new issues w Part of every team meeting (Status)
v Brainstorming:
w Objective: Generate and evaluate large number of solutions for a problem w Part of every team meeting (Discussion)
Bernd Bruegge
78
Purpose of Meeting
w Why do we meet?
Desired Outcome
w What do we want to achieve?
Information Sharing
w Action Items
Information Processing
w Open Issues
Meeting Critique
Bernd Bruegge
79
Software Project Management Plan (SPMP) Requirements Analysis Document (RAD) System Design Document (SDD) Object Design Document (ODD) Test Manual User Manual
v Postmortem
u
Review
Bernd Bruegge
80
Bernd Bruegge
81
Hallway conversation
w Unplanned face-to-face meeting
v v
Groupware
w Same time, different location groupware
Bernd Bruegge
82
Bernd Bruegge
83
Fill out a review form Attach document to be reviewed Distribute the review form to reviewers Wait for comments from reviewers Review comments Create action items from selected comments Revise document and post the revised version Iterate the review cycle Example:
w Review of Documents Database in JAMES Project
Bernd Bruegge
84
Bernd Bruegge
85
NewReview Form
Bernd Bruegge
86
Select reviewers Select the document to be reviewed Add comments to reviewers Determine deadline
Bernd Bruegge
87
Reviewer Notification
v
Bernd Bruegge
88
Bernd Bruegge
89
Bernd Bruegge
90
Originator Notification
Bernd Bruegge
91
Bernd Bruegge
92
Editor reviews comments Editor selects reviewed comments Web Master posts reviewed document and action items Team members complete their action items Editor integrates changes Editor posts changed document on the review database for the next review cycle
Bernd Bruegge
93
Bernd Bruegge
94
Bernd Bruegge
95
Summary
v v v v
Communication Modes vs Communication Mechanisms Scheduled Communications Asynchronous Communications Team review of documents with Lotus Notes
Bernd Bruegge
96