Software Project Management

advertisement
Software Project Management
Introduction
"... project management is probably the
toughest single problem in the software
industry.” --Capers Jones [Jones 1996, p 213]
Motivation
• Nearly all software is created in the context of a
project. Projects must be managed.
• Project management is about planning, tracking
and controlling product development.
• Good project management is just as important to
project success as the technical activities of coding
and testing.
Projects: Old Concept; New Approaches
• A project is a temporary endeavor undertaken to create a
unique product or service [PMI 2000].
• Projects have been around as long as humans.
• Some notable projects in the history of civilization include:
– Egyptian Pyramids
– Roman Aqueducts
– Polaris Missile Program
Project vs. Operation
• Projects and ongoing operations are two ways of
organizing work.
• Projects have a definite start and end date. Ongoing
operations go on forever (“To infinity and beyond!”)
• Projects are the preferred method of organizing work that
produces a unique product or service. Work that is ongoing
and routine is better performed as an operation using an
organization's permanent infrastructure.
Projects: Old Concept; New Approaches
• The fundamentals of PM haven't changed in over 4,000
years, but project managers today have access to new tools
and techniques.
• New tools include the PC and project management
software such as MS Project.
• New techniques, invented in the first half of the 20th
century to handle large-scale military and civilian
construction projects, include:
– GANTT Charts
– PERT/CPM
– Earned Value Analysis
Project Management Institute (PMI)
• The PMI is the world’s leading project
management professional association.
• Started in the late 60’s, the PMI now has over
200,000 members worldwide.
• The PMI provides several levels of
certification related to project
management.
• The PMI is the author of the wellknown reference: A Guide to the
Project Management Body of
Knowledge (PMBOK).
Project Life Cycle
• Just as the product of software development
moves through a sequence of phases marked by
product-oriented milestones, the project as a
whole moves through its own sequence of phases
marked by project-oriented milestones.
Standard Functions of Project
Management
• Planning - deciding in advance what to do.
• Organizing - defining roles and responsibilities
for the project team.
• Staffing - filling and keeping filled roles defined
by the organization structure.
• Directing - leading and motivating individuals to
achieve their potential.
• Tracking and Controlling - periodically
assessing project status and taking corrective
action when actual progress deviates significantly
from plans.
Project Life Cycle
• The project life cycle defines the phases a project goes through
from inception to completion. The four main phases of the
project life cycle are:
– Initiation Phase – Define objectives and get approval to proceed.
– Planning Phase – Decide who does what when.
– Execution & Controlling Phase – Perform the work as described in the
project plan. The bulk of the project effort will be expended here but
other than tracking and controlling it’s not a busy time for the PM.
– Closeout Phase – Get closure. Customer accepts results. Do a project
postmortem. What went right? What went wrong? Do casual analysis
on problems in order to identify root causes with the intention of
improving performance on future projects.
The Role of Project Manager
• The responsibility for managing a project can be
distributed among the project members, but more
commonly is assigned to one individual—the
project manager.
• Project management is independent of technical
specialty. The tools and techniques of project
management are the same whether you are
fabricating with bits or bricks. The job of project
manager, however, is industry specific. You must
know something about software to be a good
manager of a software project.
Project Life Cycle:
Timing and Application
Project Management and the
Software Development Life Cycle
Project Management Activities
The Art and Science of
Project Management
Art
• Vision
• Leading
• Motivating
• Creative problem
solving
• Managing
expectations
Science
• Planning
• Organizing
• Staffing
• Tracking
• Control
• Reporting
Special Challenges Managing
Software Projects
• Visibility. Because software is intangible,
additional work is needed to make the
process and product of software
development visible.
• Absence of routine solutions and processes.
• Changing requirements.
• Changing implementation technologies.
The Four Variables of a Project
• Every project has to balance the desire for features
and quality with constraints on cost and time.
• There is rarely enough time or money to deliver
all of the features and quality that the customer
can use. It’s up to the project manager to find a
balance that is agreeable to all and manage the
project in a way that keeps these variables
balanced throughout the project.
The Four Variables of a Project [cont]
• Cost – the amount of money available to do a
project. For software projects most of the cost
goes toward salaries so effort is a good
approximation of cost.
• Time – is the amount of calendar time available to
complete a project.
• Features – are a measure of functionality. What is
the software to do?
• Quality – a measure of how well the product does
what it is suppose to do. Defects obviously lower
the quality of the software.
Understanding the Tradeoffs Among the
Four Variables of a Project
• When looking for a balance among these four variables, the
following conceptual “formula” provides intuition about
how a change in one variable will affect the others.
Cost * Time = Features * Quality
• Once the formula is balanced, a change in one variable will
necessitate an offsetting change in one or more of the other
variables.
• For example, once the variables are balanced for a project
adding more features can only be offset by one or more of:
lower quality, higher cost or longer project duration.
Understanding The True Relationship
Between Project Variables
• The “formula” for project equilibrium is a simplification.
The true relationship between project variables is more
complicated than mathematical multiplication (“*”)
• There are also limits to the extent that a change in one
variable can be balanced by a change in another.
• The following graphs more accurately represent the true
relationships between these four variables:
Balancing the four variables of a Project
• The key to finding an acceptable balance is
knowing at the start of a project which variables
are fixed and which have a degree of freedom.
– “If we don't have these 15 features, we can't be
competitive in the marketplace.” (features are fixed)
– “The grant authorizes us to spend $50K on the software
and it has to be ready for review by February.” (time
and cost are fixed)
– "The system is safety-critical so it has to be error-free."
(quality is fixed)
• If all four variables are “fixed”, and the formula is
out of balance, you are in trouble.
Ask the customer
to prioritize objectives
• At the start of a project after features have been decided, there is an old
saying that neatly summaries the customer’s options:
You can have it fast;
you can have it cheap;
or you can have it good.
Pick two.
• Despite its brevity (and levity), this simple statement of options makes
three important points:
• There are tradeoffs among the four variables of a project and it's
impossible to optimize them all.
• There has to be a degree of freedom with at least one variable. The
customer can't dictate all four.
• It's important to establish the priorities among these variables at the
start of a project.
Productivity addresses
the issue of feasibility
• Taking into account team productivity, the
formula for project equilibrium becomes:
Cost * Time * Productivity Constant = Features * Quality
• Team productivity is an important factor to
consider when deciding whether or not a particular
project request is feasible.
• The productivity constant accounts for the
capabilities of the people doing the work, the
process they are following and the tools and
technologies they are using.
Project Triple Constraint
• According to the rule of threes, people tend to
remember and react more favorably to lists of three.
• When speaking of the main variables or constraints
on a project it’s more convenient to refer to them as
three variables: cost, time, and performance, where
performance aggregates features and quality.
• Taken together the three variables
are sometimes referred to as the
project triple constraint or iron
triangle.
Education over Negotiation
• You can negotiate tradeoffs among the four
variables but you can’t negotiate their
relationships.
• At the start of a project you have estimates for the
cost and duration. If you have been recording
historic data on past project, you also have
reasonably accurate productivity data.
• You can negotiate how much unpaid overtime you
will spend, but other than that there isn’t anything
to negotiate.
• The customer might wish estimates for cost and
duration were lower, but you can’t negotiate them
lower.
Education over Negotiation [cont]
• Just as Ohm's law describes how volts,
current and resistance are balanced in an
electrical circuit (V = I * R), the formula for
project equilibrium describes the balance of
forces during a project.
• Electrical engineers can’t violate Ohm's law
and software engineers can’t complete a
software project when these variables are
out-of-balance.
Keys to Project Success
Del: Defining Characteristics of a
Project?
• The work is temporary.
• The result is a unique product or service.
Projects are one-time events resulting in a
unique product or service.
Project Characteristics
• Projects are characterized by:
– Specific objectives
– Schedule
– Budget
– Team of individuals working together
– Production of a unique product or service
Download