CS442 Software Project Management: Dr. Riem Hamdi

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 30

CS442

Software Project Management


Lecture 3
Dr. Riem Hamdi
riem.hamdi@must.edu.eg
2

Course Contents
Wk: 01 Introduction to software project management
Wk: 02 CH 03: Project Organization and Communication
Wks: 03 - 05 CH 13 Configuration Management (CH25 Sommerville):
1. An Overview of Configuration Management
2. Configuration Management Concepts
3. Configuration Management Activities
4. Managing Configuration Management

Wk: 06 Exam #1
Wk: 07-08 CH 14: Project Management (CH 22 Sommerville):
1. Work break down structure
2. Estimation
3. Scheduling
4. Project Organization

Wk: 09 CH 15: Software Life Cycle


1. Standard for Developing Life Cycle Processes
2. Characterizing the Maturity of Software Life Cycle Models
3. Life Cycle Models

Wk: 10 CH 16: Methodologies: Putting It All Together


1. Methodologies (Scrum)
2. Scrum and XP

Wk: 11 Quality Management: SQA overview (CH 24 Sommerville)

Wk: 12 Exam #2
Wk: 13 Revision on all chapters, Q&A lecture
Wk: 14 Final practical presentations
Pop up QUIZ!
Communication failure is costly and can have a high, and sometimes fatal, impact on the project and
the quality of the delivered system.
Object-Oriented Software Engineering
Using UML, Patterns, and Java

Organization and
Chapter 3, Project

Communication, Part 2
Overview of Ch.(3)
Organization

assigned to
Team
*
*
responsible for
Participant
1
*
Role
*
Task produces Work Product
1 *
* 1 *
Schedule
mapped to
Communication 1

appears
Planned Event Unplanned Event
* * concerns
Problem Request for
Definition Clarification
Change
Review Request
Issue
Release Resolution
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5
CH 03: Road Map
1. An Overview of Projects
2. Project Organization Concepts
1. Project Organizations Answer
2. Roles of the 2nd
3. Tasks and Work Products lecture
4. Schedule question
3. Communication Activities
1. Joining a Team
2. Joining the Communication Infrastructure
3. Attending Team Status Meetings
4. Organizing Client and Project Reviews
4. Communication Concepts
1. Planned Communication
2. Unplanned Communication
3. Communication Mechanisms

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6
Typical Initial Communication Activities in a Software
Project
• Understand problem statement
• Join a team
• Schedule and attend team status meetings
- Kick off meeting
- First team status meeting
- Training sessions
• Join the communication infrastructure.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7
Understand the Problem Statement

• The problem statement is developed by the client


• Also called scope statement
• A problem statement describes
• The current situation (Description of one or more
scenarios of the problem to be solved)
• Functional and nonfunctional requirements that will be
supported by the new system
• The environment in which the system will be first tested
then deployed
• Project schedule
Major milestones (Deliverables)that involve interaction with
the client including deadline for delivery of the system
• Criteria for acceptance test (Criteria for the system
tests).
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8
Join a Team

• During the project definition phase, the project manager forms a


team for each subsystem
• Additional cross-functional teams are formed to support the
subsystem teams
• Each team has a team leader
• Other roles can include
• Configuration manager
• API-Liaison
• Technical writer
• Web master
• The responsibilities of the team and the responsibilities each
member must be defined to ensure the team success.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9
Attending Team Status Meetings

• Important part of a software project: The regular team meeting


(weekly, daily,…)
• Meetings are often perceived as pure overhead
• Important task for the team leader:
• Train the teams in meeting management
• Announce agendas
• Write minutes
• Keep track of action items
• Show value of status meeting
• Show time-saving improvements.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10
Join the Communication Infrastructure
• A good communication infrastructure is the
backbone of any software project
• Web-Portal, e-mail, Newsgroups, Lotus Notes
• Learn to use the appropriate communication
mechanism for the information at hand
• The appropriateness of mechanisms may depend on
the organizational culture.
• Register for each communication mechanism
which is used by the software project
• Get an account, get training
• Questions to ask:
• Are meetings scheduled in a calendar?
• Does the project have a problem in reporting system?
• Do team members provide peer reviews in meetings or
in written form?

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11
Outline

• Concepts and terminology

• Communication events
• Planned communication
• Unplanned communication

• Communication mechanisms
• Synchronous communication
• Asynchronous communication

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12
Communication is critical
• In large system development efforts, you will
spend more time communicating than coding
• A software engineer needs to learn the so-called
soft skills:
• Collaboration
• Negotiate requirements with the client and with
members from your team and other teams
• Presentation
• Present a major part of the system during a review
• Management
• Facilitate a team meeting
• Technical writing
• Write part of the project documentation.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13
Communication Event vs. Mechanism
Communication event
• Information exchange with defined objectives and scope
• Scheduled: Planned communication
• Examples: weekly team meeting, review
• Unscheduled:Event-driven communication
• Examples: problem report, request for change, clarification

Communication mechanism
• Tool or procedure that can be used to transmit
information
• Synchronous: Sender and receiver are communicating at
the same time
• Asynchronous: Sender and receiver are not
communicating at the same time.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14
Modeling Communication

Communication is supported by Communication


Event * * Mechanism

Planned Unplanned Synchronous Asynchronous


Event Event Mechanism Mechanism

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15
Planned Communication Events
Problem Definition
• Objective:Present goals, requirements and constraints
• Example: Client presentation
• Usually scheduled at the beginning of a project
Project Review: Focus on system models
• Objective: Assess status and review the system model
• Examples: Analysis review, system design review
• Scheduled around project milestones and deliverables
Client Review: Focus on requirements
• Objective: Brief the client, agree on requirements changes
• The first client review is usually scheduled after analysis phase.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16
Planned Communication Events (cont’d)

Walkthrough (Informal)
• Objective: Increase quality of subsystem
• Example
• Developer informally presents subsystem to team members (“peer-to-
peer”)
• Scheduled by each team
Inspection (Formal)
• Objective: Compliance with requirements
• Example
• Demonstration of final system to customer (Client acceptance test)
• Scheduled by project management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17
Planned Communication Events (cont’d)

Status Review
• Objective: Find deviations from schedule and correct them or identify new
issues
• Example
• Status section in regular weekly team meeting
Brainstorming
• Objective: Generate and evaluate large number of solutions for a problem
• Example
• Discussion section in regular weekly team meeting.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18
Planned Communication Events (cont’d)
Release
• Objective: Baseline the result of each software
development activity (will discussed in details in Ch.13)
• Examples:
• Software Project Management Plan (SPMP)
• Requirements Analysis Document (RAD)
• System Design Document (SDD)
• Beta version of software
• Final version of software
• User Manual
• Usually scheduled after corresponding activity (“phase”)
Postmortem Review
• Objective: Describe Lessons Learned
• Scheduled at the end of the project
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19
Unplanned Communication Events
Request for clarification
• The bulk of communication among developers, clients
and users
• Example: A developer may request a clarification
about an ambiguous sentence in the problem
statement.
From: Alice
Newsgroups: vso.discuss
Subject: SDD
Date: Wed, 2 Nov 9:32:48 -0400

When exactly would you like the System Design Document? There
is some confusion over the actual deadline: the schedule
claims it to be October 22, while the template says we have
until November 7.
Thanks,-Alice
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20
Unplanned Communication Events

Request for change


• A participant reports a problem and proposes a solution
• Change requests are often formalized when the project size is substantial
• Example: Request for additional functionality

Report number: 1291 Date: 5/3 Author: Dave


Synopsis: The STARS form should have a galaxy field.
Subsystem: Universe classification
Version: 3.4.1
Classification: missing functionality
Severity: severe
Proposed solution: …

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21
Unplanned Communication Events

Issue resolution
• Once problems have been reported and solutions
proposed and evaluated, a single solution, must be
selected, communicated, and implemented
• The decision needs to be documented and communicated
to the relevant participants.
• Documentation of the resolution allows participants to
refer back to the decision later in the project.
• In case of a misunderstanding. Effective communication
of the decision enables participants to remain
synchronized.
• An issue base can serve as a communication mechanism
for supporting problem tracking and issue resolution.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22
Communication Mechanisms
• A tool or procedure that can be used to transmit
and receive information and support a
communication event.

• Both synchronous and asynchronous


communication mechanisms can be used to
support planned communication. On the other
hand, only asynchronous communication
mechanisms can be used for supporting
unplanned communication

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23
EXAM #1
Ends here.
Synchronous Communication Mechanisms
• Hallway conversation
• Supports: Unplanned conversations, Request for
clarification, request for change, based on opportunity,
two participants meet by accident and take advantage of
the situation to exchange information.
+ Cheap and effective for resolving simple problems
– Information loss, misunderstandings are frequent
• Meeting (face-to-face, phone, video conference)
• Supports: Planned conversations, client review, project
review, status review, brainstorming, issue resolution
+ Effective for issue resolution and consensus building
– High cost (people, resources).

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25
Asynchronous Communication Mechanisms
• E-Mail
• Supports: Release, change request, brainstorming
+ Ideal for planned communication and announcements
– E-mail taken out of context can be misunderstood, sent to the wrong person, or lost
• Newsgroup
• Supports: Release, change request, brainstorming
+ Suited for discussion among people who share a common interest; cheap
(shareware available)
– Primitive access control (often, you are either in or out)
• World Wide Web (Portal)
• Supports: Release, change request, inspections
+ Provide the user with a hypertext metaphor: Documents contain links to other
documents.
– Does not easily support rapidly evolving documents.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26
Planning the deadlines for individual
deliverables
• A schedule is the mapping of tasks onto time: each
task is assigned start and end times. This allows us
to plan the deadlines for individual deliverables.
The two most often used diagrammatic notations
for schedules are PERT and Gantt charts

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27
Example of A schedule for the database
subsystem

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28
Lecture Assignment

• Prepare a simple time schedule to deliver your project using both


of PERT and Gantt charts
• Schedule items may include but not limited to:
- Team building
- Project Idea definition
- Presentation and get approval
- Define roles & responsibilities
- Define tools & techniques
- Define communication infrastructure
- Define deliverables (Project phases & time)
- Start review meetings
- Inspection review meetings
- Deliver project

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29
Summary

• Communication Events
• Planned (stipulated by the schedule)
• Unplanned (driven by unexpected events)
• Communication Mechanisms
• Asynchronous communication mechanisms
• Synchronous communication mechanisms
• Important events and mechanisms in a software project
• Weekly meeting
• Project reviews
• Online communication mechanisms:
• Discussion forum, email, web (Wiki)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30

You might also like