28
Software Project Management Introduction "... project management is probably the toughest single problem in the software industry.” --Capers Jones [Jones 1996, p 213]

Software Project Management Introduction "... project management is probably the toughest single problem in the software industry.” --Capers Jones [Jones

Embed Size (px)

Citation preview

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 well-known 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 ofProject 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.

• 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.

• 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 Tradeoffs Among the

Four Variables of a Project

Cost * Time = Features * Quality

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 customerto 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 addressesthe 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