Académique Documents
Professionnel Documents
Culture Documents
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
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
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."
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
Scope
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
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
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
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
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
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
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
• 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
• 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 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
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
r--I
,
I__ J
I Project Management Phase
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
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."
• 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
------,
Project I
Planning ProjectControland Execution Closure :
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
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
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
:::-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
PROJECT ROLES
<Team <Team <Team <Team <Team <Team
Member A> Member B> MemberC> Member D> Member E> Member F>
PROJECT DELIVERABLES
Create Team RAM