Vous êtes sur la page 1sur 31

Software Project Management Session 1: Initiating a Software Project

Software Project
Management
Software Project Management Session 1: Initiating a Software Project

Software PM Roadmap
Delivering
the Results

Starting on a
Software Firm foundation
Project
Charter
Support
Processes

Establishing Monitoring
Requirements Progress

. :.,""--' Completing

~;~:t::st;c ~" theSchedule Software


~ Project
Development
----- WBS & Gantt Chart Plan

This workshop presents project management from the viewpoint of the software
project. In this workshop, students learn to apply industry standard tools and
techniques to successfully manage software projects from the proposal stage
through retirement.
This workshop is:
• An introduction to software project concepts
• An overview of various software engineering concepts as applied to project
management
• An opportunity to practice selected software project management techniques
This workshop is not:
• Detailed software engineering
• Basic project management
Software Project Management Session 1: Initiating a Software Project

Day 1 Topics
• Basic project management principles review

• What makes software projects different


(and difficult!)

• Software Project Roles & Responsibilities

• Creating a Team Responsibility


Assignment Matrix (RAM)

• Describe characteristics that make software projects unique.


Describe software project team roles and alternative ways to organize the
team.
• Discuss the importance of the end user and the executive sponsor as
project team roles.
• Use a responsibility assignment matrix (RAM) to clarify project team
member responsibilities throughout the project.
Software Project Management Session 1: Initiating a Software Project

Project Management
Basic Concepts Review
Software Project Management Session 1: Initiating a Software Project

What is a Project?
The PMBOK * defines a project as
"a temporary endeavor undertaken to
create a unique product or service."

*"Project Management Body of Knowledge,"


published by
Project Management Institute (PMI)

Projects:
• Have clearly defined start and end dates
• Create specific products/services to meet specific goals
Require multiple skill sets
Not all work efforts are projects. Some work efforts are processes ---- repetitive,
day-to-day activities, e.g. filling in time sheets, answering Help Desk calls,
scheduling jobs, or changing a telephone number. Often, these processes are
performed to support another project. For example, software testing set-up,
installing desktop software, or networking printers can be tasks within a project
plan.
Software Project Management Session 1: Initiating a Software Project

What is Project Management?

The PMBOK defines project management as


.... "the application of knowledge, skills,
tools, and techniques to project activities in
order to meet or exceed customer/stakeholder
needs and expectations."

I- -- _._. - -_. - --- _._._-:


• Project managers need to remember that project
I management is NOT doing the project --- it is
i ensuring that the project gets done.

The purpose of project management is to maintain an environment in which the


project team can be successful. Major components of project management include:
• Defining the project scope and establishing clear project objectives
that are aligned with the organization's strategic goals
• Communicating these objectives throughout the organization
• Establishing resource requirements and availability
• Determining a realistic schedule
• Tracking and reporting on the work
• Adjusting the plans as needed
• Collecting the lessons learned at project closure

Managing a project requires balancing competing demands of:


• Scope, time, cost, and quality
• Multiple stakeholders
Software Project Management Session 1: Initiating a Software Project

The "Triple Constraint"

Scope

Good, Fast, Economical-- Pick one ...

At the beginning of a project, the project manager establishes the understanding that
in order to manage the project effectively, he or she will need to negotiate trade-offs
between scope, schedule, and resources as the project progresses. This negotiation
results in a determination of how much flexibility exists on each constraint.
The project manager and the project sponsor should agree to hold only one
constraint fixed or "Not Flexible." The project manager then manages the project
to meet the "Not Flexible" constraint while adjusting the other two.
Software Project Management Session 1: Initiating a Software Project

PMBOK Nine Areas

• Project Integration Management


• Proj ect Scope Management
• Project Time Management
• Proj ect Cost Management
• Project Quality Management
• Project Human Resource Management
• Project Communications Management
• Project Risk Management
• Project Procurement Management

Project Integration Management contains the processes required to ensure that the
various elements of the project are properly coordinated. It consists of project plan
development, project plan execution, and integrated change control.
Project Scope Management contains the processes required to ensure that the
project includes all the work required, and only the work required, to complete the
project successfully. It consists of initiation, scope planning, scope definition, scope
verification, and scope change control.
Project Time Management contains the processes required to ensure timely
completion of the project. It consists of activity definition, activity sequencing,
activity duration estimating, schedule development, and schedule control.
Project Cost Management contains the processes required to ensure that the project
is completed within the approved budget. It consists of resource planning, cost
estimating, cost budgeting, and cost control.
Project Quality Management contains the processes required to ensure that the
project will satisfy the needs for which it was undertaken It consists of quality
planning, quality assurance, and quality control.
Project Human Resource Management contains the processes required to make the
most effective use of the people involved with the project. It consists of
organizational planning, staff acquisition, and team development.
Software Project Management Session 1: Initiating a Software Project

Project Communications Management contains the processes required to ensure


timely and appropriate generation, collection, dissemination, storage, and ultimate
disposition of project information. It consists of communications planning,
information distribution, performance reporting, and administrative closure.
Project Risk Management contains the processes concerned with identifying,
analyzing, and responding to project risk. It consists of risk management planning,
risk identification, qualitative risk analysis, quantitative risk analysis, risk response
planning, and risk monitoring and control.
Project Procurement Management contains the processes required to acquire goods
and services from outside the performing organization. It consists of procurement
planning, solicitation planning solicitation, source selection, contract administration
and contract closeout.
Software Project Management Session 1: Initiating a Software Project

Project Management Phases

Recognizing that a project should begin


and committing to do so

Devising and maintaining a workable


·Rla Hr1.iQg...•~~·..•1
1,~"·.·,.• scheme to accomplish the business need
that the project needs to address.
Monitoring and measuring
I·;.,].goh~rglm•.·'1 progress and taking corrective
action when necessary.

I, Execution;~1 Coordinate people and resources to


carry out the plan
Formalizing acceptance of the
\ ...,§IQsure'·,1 project and bringing it to an
orderly close.

These project management phases are based on the standard project management
practices from the Project Management Institute's PMBOK project management
processes groups. Each phase:
• Represents a major, measurable step in the evolution of the project.
• Is made up of well-defined project management processes which create useful
deliverables.
Concludes when agreed upon completion criteria have been met.
The project management phases define what the project manager must accomplish at
each point in the project life cycle. However, depending on the size and complexity of
the project, the activities in the phases may require more or less effort.
Note that in a staged approach to a large project, each of these phases will be
accomplished in each stage.
Software Project Management Session 1: Initiating a Software Project

Level of Activity by Phase

Level
of
Activity

Project Project
Start End

This graph is adapted from the PMBOK definition of the process groups and the
level of effort throughout the project.
The project phases are linked by the deliverables produced. For example, the
project definition created during Initiation, is used in Planning to identify tasks and
create the project plan.
Each phase/process group has well-defined completion criteria based on the
deliverables. The process groups overlap throughout the project, with varying
levels of effort.
Software Project Management Session 1: Initiating a Software Project

What is a Successful Project?


A project is a success when:
~ End product is delivered complete,
on-time, and within budget.
~ Customers are delighted
~ Project Team is enthusiastic
~ The organization is better off

A successful project:
• Meets business objectives
• Meets customer requirements and quality expectations
• Is delivered within cost (paid, unpaid, and business expert costs)
• Meets deadline
• Delivers sustained and actual benefits
• Provides the team with professional satisfaction and learning
Software Project Management Session 1: Initiating a Software Project

What Makes Software Projects


Different??
Software Project Management Session 1: Initiating a Software Project

What is a Software Project?

• Creates new software


• Maintains or enhances existing software
• Tailors and installs new software
• Other???

The IEEE Glossary defines Software as: "Computer programs, procedures, and
possibly associated documentation and data pertaining to the operation of a
computer system."
An example definition of a software project created for use by the California Dept
of Transportation (CALTRANS) is: "Any project which produces a major
deliverable that creates or processes information for purposes of decision making."
Note that this definition rules out closed loop, embedded processors such as
automated traffic signs, etc.
Software Project Management Session 1: Initiating a Software Project

Software Project Problem Areas


• Unrealistic expectations
• Requirements --- unclear, missing, wrong
• Inadequate sponsorship
• Scope Creep
• Dependencies on other projects
• Dependencies on external sources
• Poor Estimates
• Antiquated techniques

The following list is adapted from "Software's Ten Essentials," IEEE Software,
Vol 14, No 2, March/April 1997. Integration of these ten essentials addresses many
of the software project problem areas.
1. A product specification
2. Explicit priorities
3. Software architecture
4. A detailed user interface prototype

5. A realistic schedule and tradeoffs


6. Detailed task lists
7. Active risk management
8. Software configuration management
9. A quality assurance plan

10. An integration plan


Software Project Management Session 1: Initiating a Software Project

Software Project Success Rate

According to the 1994 Standish Group survey of


over 8,000 information technology projects:

• 31 % were canceled
• 53 % were challenged
On average:
» 1890/0 Budget
» 222% Schedule
» 61°1<> Functionality
• Only 16 % were successful

According to the Standish Group, in 1994 corporate America spent over $275
billion on over 200,000 application software development projects. Many of these
projects failed to deliver.
See the complete CHAOS report on the web at http://www.standishgroup.com
Software Project Management Session 1: Initiating a Software Project

Improvement in Project Success

• Succeeded
IIFailed
OChalienged

The results in the year 2000 show a steady improvement over the original 1994
study. Project success rates are up and the number of challenged projects, those
with cost and schedule overruns, is declining. In addition, the challenged projects
also show an improvement:
• Cost overruns were down from 189% in 1994 to 45% in 2000.
• Schedule overruns dropped from 222% in 1994 to 63% in 2000.
• Functionality provided increased from 61% in 1994 to 67% in 2000
This improvement can be credited to the fact that software development and IT
projects have begun to take project management seriously and incorporate best
practices into their plans.
Software Project Management Session 1: Initiating a Software Project

The CHAOS Ten Success Factors


• Executive Support (18 points)
• User Involvement (16 points)
• Experienced Project Manager (14 points)
• Clear Business Objectives (12 points)
• Minimized Scope (10 points)
• Standard Software Infrastructure (8 points)
• Firm Basic Requirements (6 points)
• Formal Methodology (6 points)
• Reliable Estimates (5 points)
• Other (5 points)

The Standish Group study assigned point counts indicating the importance and ranking
each of the ten factors. The following are the top five factors, accounting for a total of 70
points towards a successful software project.
• Executive Support (18 points): Ensure that the executive sponsor has vested and
continuous interest in the successful outcome of the project.
• User Involvement (16 points): Find the right users and involve them early and
often. Keep open lines of communication throughout the project.
• Experienced Project Manager (14 points): Assign a project manager who has
both business and technology knowledge, as well as good project management,
communication, and negotiation skills. Formally announce the project manager
assignment.
• Clear Business Objectives (12 points): Gain agreement on a clear, concise
definition of the problem/opportunity and the proposed solution in user oriented-
terms.
• Minimized Scope (10 points): By minimizing the scope ofa project, time is
reduced, increasing the project chances for success. The Standish Group has found
that the most successful projects are performed in 6 months or less by a team of 6
individuals.
The remaining five factors total of 30 points. Each of these factors contributed equally to
project success.
Software Project Management Session 1: Initiating a Software Project

Software Project Life Cycle c:::::J_


•..(--

• A repeatable set of phases to plan


and measure progress
• Foundation for creating a
Work Breakdown Structure (WBS)
• A road map containing milestone points
• A tool to help identify problems early in the
project before they get too big

A life cycle consists of a well-defined set of phases that measure the progress of an
effort from its initial conception to its eventual completion. The life cycle promotes
consistency and repeatable success, and allows project teams to focus on their work
instead of re-inventing the process each time. Life Cycles are invaluable in planning,
coordinating, and measuring project progress.
Life Cycles typically contain a hierarchical structure and the ability to tailor the
structure to work on large and small efforts. Generic life cycle components include:
• Phases -- major milestone points.
• Activities/tasks -- more detailed definition of things that must be accomplished
Tailoring guidelines -- information on how to adapt these tasks and activities
to different types of efforts.
A Project Management Life Cycle is used to plan and manage the progress of all
projects. Software Development Life Cycles are used to plan and measure the
progress of solution development/acquisition and deployment for software projects.
Software Project Management Session 1: Initiating a Software Project

PM and SDLe Frameworks

,--------- ------ ------1


: Project Project Project :
, Initiation Planning
, Closure ,
~?,. ,.:·~'P~:·'-·:t-~..i;~-:,:'
I>
,
I· ,> Maintenance
:/+-/'\':};;":~"'''
...\'.;<'
I
1 - __ --- _

r--I
,
I__ J
I Project Management Phase

D Software Development Life Cycle Phase

Generic Software Development Life Cycle Phases can be defined as follows:


Concept: Describe the business and technical context of the project, and
determines the project business requirements.
Requirements: Define the solution's functionality, interfaces, and detailed
performance requirements.
Design Phase: Determine how to assemble, build and or tailor the solution
components including user manuals and training.
Development: Create the solution components and performs tests to demonstrate
readiness for seeking acceptance.
Acceptance: Perform system and user acceptance testing, as well as any other
required testing, and obtain formal sign-off.
Deployment: Train the users, install the solution in all user locations, and complete
handoffs to the support organization.
Maintenance and Support: Continue to operate and support the solution.
(Maintenance and enhancement projects are initiated as needed; those maintenance
and enhancement projects follow these same phases.)
Retirement: Retire the system once the solution no longer meets business and or
technical needs.
Software Project Management Session 1: Initiating a Software Project

Software Project Roles and


Responsi bi Iities
Software Project Management Session 1: Initiating a Software Project

Example Software Project Organization

Configuration
Managemeni

NOTES:
There are different ways to organize software projects depending on the size of the
project and the structure of the organization. In functional and weak matrix
organizations, the project manager reports to one of the functional areas. The
project team members do not report directly to the project manager, but rather to the
functional manager responsible for their function, e.g. the QA Manager. In strong
matrix organizations, the project manager reports to a Director of Projects, and as
such has access to some cross-functional authority. However, the team members
still report to their functional area managers. In a projectized organization, the
project manager has authority over all the team members.
Not all software projects require that all the roles shown here be performed by
different team members. For example, a project could combine the roles of System
Testing and Quality Assurance.
Roles that are unique to software projects include:
• Chief Architect: Responsible for ensuring that the software is consistent with
the long term direction of the organization.
• Independent Verification and Validation: Required on many government
projects as independent observers to verify that the project team documents
and follows the procedures they agreed to in the contract.
Configuration Management: Responsible for managing changes to the
software modules, including recording and saving each version of the system
and documenting the changes between versions.
Software Project Management Session 1: Initiating a Software Project

Development Team Organization Options

In "The Wisdom of Teams", Jon Katzenbach and Douglas Smith define a highly
performing team as:

"A team is a small number of people with complementary skills who are
committed to a common purpose, performance goals, and approach for
which they hold themselves mutually accountable."

In "On Time Within Budget: Software Project Management Practices and


Techniques", E. M. Bennatan describes two different types of organization for the
development teams: Chief Engineer Teams and Democratic Teams.
Chief Engineer Teams work best for teams that are composed of junior or
inexperienced developers. In this type of organization, the Chief Engineer role may
be devoting a significant amount of their time to coordination, communication and
administrative activities.
Democratic teams are most appropriate for groups of experienced developers. It
requires an approach to coordination and communication that achieves consensus
among the team members on design and other global issues. In this type of team
organization, the team leader administrative functions, such as reporting issues to
the project manager, are divided amongst the team members. This can result in
confusion about who is doing what, with the end result that administrative functions
are not performed.
Software Project Management Session 1: Initiating a Software Project

Software Project Team Roles

• Executive Sponsor
• User Lead
• Customer
• Stakeholders
• Functional Manager
• Project Manager
• Team Members

Each role requires specific skill sets and knowledge needed to effectively participate
in managing and accomplishing the project goals. Clearly defined roles and
responsibilities ensure that the right skill sets are brought to bear on each project
activity.
Executive Sponsor:
The Executive Sponsor is accountable for the project success and plays an active
role throughout the project. Provides the vision, guidance and direction to the
project manager to ensure successful execution and management of the assigned
projects. This individual provides the funding and the resources.
User Lead:
Represents the individuals who will be operating the software product as part of
their daily work.
Customer:
The individual or organization benefiting from the result ofthe software project.
Stakeholders:
Any outside organization or agency that has some "stake" in the success of the
project. This includes control agencies or related departments ~ho may not be
directly impacted by the project, but can contribute to the success (or failure) of the
project.
Software Project Management Session 1: Initiating a Software Project

Functional Manager
The Functional Manager is responsible for the resources assigned to the project.
The Functional Managers work closely with the Project Managers and the Executive
Sponsors of projects in their area to ensure that the resources reporting to them are
utilized in a way that best meets the needs of the organization and their customers.

Project Manager
The Project Manager is responsible for effective project planning, execution and
control and close-out. To succeed the project manager must work closely with and
be responsible to the Executive Sponsor.

Project Team Leader:


For large and complex projects, it may be necessary to break the projects into sub-
teams and designate team leaders. Team leaders are responsible for effective project
planning, execution and control and closeout for their portion of the project. Team
leaders report to the project manager.

Project Team Members:


Member of the project team. They may be assigned full-time or part-time
depending on their tasks. Team members can play many different roles depending
on the project. For purposes of the project, team members report to either the
Project Manager or a Team Leader. In a matrix organization, they also report to a
Functional Manager.
Software Project Management Session 1: Initiating a Software Project

Executive Sponsor Responsibilities

Project
------,
Project I
Planning ProjectControland Execution Closure :

• Participate in the Concept Definition


• Approve the Project Charter
• Review prioritization of requirements
• Approve trade cis and scope changes
• Conduct phase end reviews
• Approve final release

The executive sponsor provides the vision for the project and is usually responsible
for approving the project resources and funding. It is crucial that this individual
have a vested interest in the successful outcome of the project.
A committed and involved executive sponsor is the number one project success
factor according to the most recent Standish Group report.
It is not unusual for a project to have a team of two or more executive sponsors.
This occurs when the project is of immediate benefit to more than one department.
In this case, the project manager must also serve as a diplomat to facilitate
agreement among the sponsors.
Software Project Management Session 1: Initiating a Software Project

User Lead Responsibilities


1--------- ------ ------1
: Project Project Project :
I Initiation Planning Closure I
1
1
1
1
1
1 --- _

• Champion the project


• Gather and prioritize business requirements
• Participate in user interface look and feel

• Create test cases


• Review prototypes and evolutionary products

• Conduct acceptance tests


• Participate in creating training and documentation

The User Lead knows the business aspects of the project better than any of the other
team members. This individual should be at a high enough management level to
know the overall business, but should also have the skills to drill down into more
detailed areas and know what other people to involve when necessary.
A committed and involved User Lead is the second most important success factor
for a software project according to the most recent Standish Group report.
Software Project Management Session 1: Initiating a Software Project

Some Technical Roles


• Chief Architect
• Business Analyst
• Systems Analyst
• Technical Lead
• Contracts Analyst
• Quality Assurance Analyst
• Configuration Control Analyst
• Database Administrator
• Developer ((
• Tester
• Technical Writer
• ETC -----

These roles are typically required on all projects regardless of the size of the
product. On small project teams, the roles are shared amongst the team members.
For example, the Business Analyst and System Analyst roles might be shared by
one person. Or the Technical Lead could also be the Database Administrator as well
as a Developer-
On small projects, it is the responsibility of the project manager to ensure that all
the roles are involved. It is important for each team member to be aware of which
project role he or she is playing at any given point.
Software Project Management Session 1: Initiating a Software Project

Example Responsibility Assignment Matrix (RAM)

:::-z
Activit
Define the
Executive
Sponsor

A
Project
Manager

0
Functional
Managers

P
Project Team
Leads

P
User
Lead

P
Project initial
Team

Conduct the 0 P P P
Initial Project
Kick-off
Meeting
Develop the A 0 R P P
Project
Objective
Statement
Begin Project 0 P P
Definition
Determine 0 P R
Project
ADDroach
Create Project A 0 R P P
Charter

Responsibilities: A = Approver
0= Owner
R = Reviewer
P = Participant
=
I Informed

Use the Responsibility Assignment Matrix (also sometimes referred to as a Roles


and Responsibilities Matrix) throughout the project to identify activities and to
clarify who is responsible for them. At the beginning of a project, you can use a
RAM to assign responsibility for significant deliverables. As the project
progresses, use an increasingly detailed RAM to clarify who is responsible for
which tasks toward the deliverables.
Software Project Management Session 1: Initiating a Software Project

PROJECT ROLES
<Team <Team <Team <Team <Team <Team
Member A> Member B> MemberC> Member D> Member E> Member F>
PROJECT DELIVERABLES
Create Team RAM

Create Software Project


Charter
Create Requirements
Documents
Document the SDLC
Milestones
Perform Function Points
Calculation
Create WBS

Create Initial Schedule

Create Cost Baseline

Collect top Ten Risk List

Perform Earned Value


Analysis
Collect Project Retrospective
Data
Organize Tearn Presentation
Software Project Management Session 1: Initiating a Software Project

Session One Review

• What is a software project?


• What are the top five success factors for a
software project?
• What are the required team roles for a
successful software project?
• What are some key skills for a software
project manager?
• What is a Responsibility Assignment Matrix
(RAM)? What is it used for?