Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Outline
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
Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2
Reference:
Bruegge&Dutoit, Chapter 12
http://notesbruegge.in.tum.de/PAID2/schedule/ProjectManagement011599.pdf
http://notesbruegge.in.tum.de/PAID2/schedule/ProjectCommunication112598.pdf
Cost estimation
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.
How it should go
Requirements Analysis Design
Implementation
System Testing
D E L A Y Vaporware
6
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
Project Agreement
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
Team formation
Project kickoff
10
Status monitoring
Risk management
Project replanning
Project agreement
Termination
Installation
Postmortem
11
a1:Activity
a2:Activity
a3:Activity
a2.1:Activity
a2.2:Activity
a2.3:Activity
t1:Task
t2:Task
t3:Task
t4:Task
12
Functions
a1:Activity
a2:Activity
a3:Activity
a2.1:Activity
a2.2:Activity
a2.3:Activity
t1:Task
Bernd Bruegge & Allen Dutoit
t2:Task
t3:Task
t4:Task
13
Functions
Examples:
Project management Configuration Management Documentation Quality Control (Verification and validation) Training
14
Tasks
f1:Function
p:Project f2:Function
a1:Activity
a2:Activity
a2.1:Activity
a2.2:Activity
t1:Task
t2:Task
t3:Task
Tasks
Completion criteria
Includes the acceptance criteria for the work products (deliverables) produced by the task.
16
Task Sizes
17
Examples of Tasks
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
18
Action Item
Definition: A task assigned to a person that has to be done within a week or less Action items
Appear on the agenda in the Status Section (See lecture on communication) Cover: What?, Who?, When?
19
Activities
f1:Function p:Project f2:Function
a1:Activity
a2:Activity
Major unit of work with precise dates Consists of smaller activities or tasks
a2.1:Activity
a2.2:Activity
t1:Task
t2:Task
t3:Task
Activities
21
Examples of Activities
Major Activities:
Planning Requirements Elicitation Requirements Analysis System Design Object Design Implementation System Testing Delivery
22
23
Title Page Revision sheet (update history) Preface: Scope and purpose Tables of contents, figures, tables
24
25
26
Process Model
27
Client
Management
Consultants
Cross-functional Teams
Development Teams
Infrastructure Team
28
Project Roles
Planner Analyst Designer Programmer Tester Maintainer Trainer Document Editor Web Master Configuration Manager
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.
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.
Object-Oriented Software Engineering: Conquering Complex and Changing Systems 30
Promoter Roles
Promoters are self appointed individuals who identify themselves with the outcome of the project. They are member of the corporate organization and may not necessarily be directly involved with the project. Instead, they are interfaces to the rest of the corporate organization. Because of the power, knowledge of technology, or familiarity with the projects processes, they are able to promote and push specific changes through the organization.
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).
32
Knowledge Promoter
Also called the technologist, Promotes change arising in the application domain or the solution domain. Usually associated with the power promoter. Tasks: Acquire information iteratively, understand the benefits and limitations of new technologies, and argue its adoption with the other developers. Example at project level: System architect.
Reports to project manager Does not have any direct subordinate in the reporting hierarchy Has final say over all technical decisions in the system.
33
Process Promoter
The process promoter has intimate knowledge of the projects processes and procedures. The process promoter is in constant interaction with the power promoter to get consensus on the overall goals. Tasks: Bridge between the power and knowledge promoters, who often do not speak or understand the same language. Example at project level: Development lead. Responsible for the administrative aspects of a project, including planning, milestones definition, budgeting and communication infrastructure. Example at corporate level: Chief Information Officer (CIO
34
Project Members
A wants to talk to B: Complicated Information Flow A wants to make sure B does a certain change: Complicated Controlflow
Basis of organization: Complicated information and control flow across hierarchical boundaries
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 35
Senior Programmer
Librarian
Administration
Tester
Junior Programmer
36
Tester
Programmer
Designer
Librarian
37
A wants to talk to B: Communication Flow A wants to make sure B does a certain change: Decision Flow
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).
39
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-Withare different associations Cut down on bureaucracy reduces development time Decisions are expected to be made at each level Hard to manage
40
Hierarchical Structure
When?
The more people on the project, the more need for a formal structure Customer might insist that the test team be independent from the design team Project manager insists on a previously successful structure
41
Project-Based Structure
When?
Requirements change during development New technology develops during project
42
Item 3 Item 4
Item 5 Item 6 Item 7 Item 8 Item 9
Person B
Role 3
43
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
44
Team Formation
Be prepared to iterate the team formation after system design when the subsystem decomposition is baselined
45
Listen to gripes from individual teams Review weekly team reports Attend weekly project meetings Schedule and prepare meetings with client Insist that guidelines are followed Assign presentations (in-class project meetings, client review, client acceptance test) Resolve conflicts if they cannot be resolved otherwise
46
47
Purpose of Meeting Desired Outcome Information Sharing Information Processing Meeting Critique
49
Plans and tracks the activities of an individual team and has the following responsibilities. Define project plan for team:
PERT chart, resource table and GANTT chart showing work packages Enter project plan into project management tool
Make project plan available to management Report team status to project manager No explicit planner in PAID. Responsibilities assumed by coaches
50
Collect, proofread and distribute team documentation Submit team documentation to architecture team Collect agendas Take minutes at meetings
51
Web Master
Maintain team home page Keep track of meeting history Keep track of design rationale
52
Web Master:
One HTML document per meeting, with anchors (maintained by one role) Separate HTML documents for Agenda, Minutes, etc (maintained by several roles) Agenda Agenda Agenda Minutes Minutes Minutes Action Items Action Items Action Items Issues Issues Issues
http://cascade1.se.cs.cmu.edu/ 15-413/homePagesTeams/UserInterface/www/index.htm
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 53
54
Examples of Assumptions
There are enough cycles on the development machines Security will not be addressed There are no bugs in Together-J, the CASE Tool recommended for the project A demonstration of the Starnetwork system will be given by the client
55
Examples of Dependencies
The database team depends on the EPC database provided by DaimlerChrysler The automatic code generation facility in the CASE tool depends on JDK. The current release of Together-J supports only JDK 1.1.6
56
Examples of Constraints
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.6
57
Risk Management
Risk: One subsystem does not provide the functionality needed by another subsystem.
Contingency: ?
58
59
5.2 Dependencies
Precedence relations among functions, activities and tasks
5.5 Schedule
Deadlines, accounting for dependencies, required milestones
60
The identification of the work breakdown structure is an instance of object identification and associating these objects
61
WBS Trade-offs
Work breakdown structure influences cost and schedule Thresholds for establishing 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
Cost
(Time, $$)
62
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
Estimate the duration of each task Label dependency graph with the estimates
63
Task Timeline
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
Object-Oriented Software Engineering: Conquering Complex and Changing Systems 64
Activity 1: Landscaping the lot Task 1.1: Clearing and grubbing Task 1.2: Seeding the Turf Task 1.3: Planting shrubs and trees Activity 2: Building the House Activity 2.1 : Site preparation Activity 2.2: Building the exterior Activity 2.3: Finishing the interior Activity 2.1 : Site preparation Task 2.1.1: Surveying Task 2.1.2: Obtaining permits Task 2.1.3: Excavating Task 2.1.4: Obtaining materials
Object-Oriented Software Engineering: Conquering Complex and Changing Systems 65
Activity 2.2: Building the exterior Task 2.2.1: Foundation Task 2.2.2: Outside Walls Task 2.2.3: Exterior plumbing Task 2.2.4: Exterior electrical work Task 2.2.5: Exterior siding Task 2.2.6: Exterior painting Task 2.2.7: Doors and Fixtures Task 2.2.8: Roof
Activity 2.3 : Finishing the Interior Task 2.3.1: Interior plumbing Task 2.3.2: Interior electrical work Task 2.3.3: Wallboard Task 2.3.4: Interior painting Task 2.3.5: Floor covering Task 2.3.6: Doors and fixtures
66
Surveying Excavation
Wall
2.2
Install Interior P lumbing 3.1 Install Interior Elec tric al 3.2 Install Wallboard 3.3 3.4 3.6 Paint Interior 3.5 Install Interior Doors
FINISH
67
Building a House:
MS Project PERTcy Chart with Duration of Activities (Pfleeger 2.3)
0 12
0 15
0 9
10/15/94
Buy Material
2/16/95 FINISH
12 3
0 10
0 10
0 15
0 0
68
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.
69
Keep track of activities and their duration Determine difference between planned and actual performance Make sure to do a post-mortem
Lessons learned Ask developers for feedback Write a document about what could have been improved
70
JAMES project
http://cascade1.se.cs.cmu.edu/JAMES/J_courseDocs/SPMP/SPMP1. 0.html
71
If project goals are unclear and complex use team-based project management. In this case
Avoid GANTT charts and PERT charts for projects with changing requirements Dont look too far into the future
Avoid micro management of details Dont be surprise if current project management tools dont work:
They were designed for projects with clear goals and fixed organizational structures
72
73