Template Lec1
Template Lec1
[SWE143]
Software Project Management
Grade: 4
2
AGENDA
Motivations
Skills and some goals of the course
Software Project Management
A Brief History of (Software) Project Management
Software Development Projects and Stakeholders
Project definition and its characteristics
Progressive Elaboration
Project Management Context
Projects and Operational Work
Examples
• Primary reference:
▫ Introduction to Software Project Management, by Adolfo Villafiorita.
CRC Press, 2014
• Secondary reading:
▫ An Introduction to Project Management, Fifth edition, by Kathy
Schwalbe, Schwalbe Publishing, 2015
MOTIVATIONS
• Consider the following:
– Writing good requirements is no good if you don’t have a controlled process, for
instance, to accept changes and trace revisions
– The techniques to do testing are useless if you don’t have any time left to do testing
(because, for instance, you underestimated the development time and are late with
a release)
– The development of a software system requires to execute, monitor, and control
various activities which have little or nothing to do with writing code. Consider, for
instance: training users, packaging a product, managing publicity and
communication, writing user documentation
MOTIVATIONS
• If you want to deliver on time and within budget a product which has
the quality properties agreed upon (be it a software or any other
product), you need:
– A process to define a schedule, a budget, and agree on the (quality)
characteristics of a product
– A list of techniques to define, agree, plan, execute, and monitor: goals,
quality, time, and costs
SKILLS AND SOME GOALS OF THE COURSE
• Managing a (software development) project, thus, requires specific competences,
skills, and techniques
• Some of the questions you will be able to answer at the end of this course include:
– How do I estimate how long it will take to complete a task?
– How much am I going to charge for a project?
– How do I keep the team motivated and ensure projects are fulfilling and an occasion to
learn, grow, and advance in one’s career?
– How do I deal with project risks?
– How do I assess whether the project is on time, on budget, onschedule?
– How do I control the quality of the final output?
SOFTWARE PROJECT MANAGEMENT
… what you will learn in this course is applicable to virtually any other
(engineering) domain.
10
FREDERICKWINSLOW TAYLOR
• Taylor’s “Scientific Management” is the first theory of work and management
• Beginning of 1900
• A negative view of workers (they perform at the slowest rate which goes
unpunished)
• Some more interesting characteristics:
– Scientific definition of work
– Scientific selection of personnel
– Sharing of responsibilities between workers and management
– Incentives and rest periods (to make workers more efficient)
HENRY GANTT
Source: The Gantt chart, a working tool of management Clark, Wallace and Gantt, Henry
FIFTIES AND SIXTIES
• 2nd World War:
– Manhattan Project: process flow diagrams
• 1990’s
– Total quality
– Leaner, quicker, more responsive organizations
• Today
– Web application and new application distribution models
– Development with components and frameworks
– Agility, quick interaction, constant feedback
Software Development
Projects &
Stakeholders
The name of the game, the players, and (some of) the rules
WHAT IS A PROJECT (The name of the game)
Characteristics of a Project:
Temporary
Delivers an output
Progressive elaboration
The fact that a project is temporary has a natural consequence. Every project will, in fact, have
1. An initiating phase, during which the project infrastructure and the project’s goals are
drafted.
2. A planning phase, during which project goals are refined, activities identified and scheduled,
and many other support activities are properly planned.
3. An executing phase, during which the actual work takes place. Running in parallel, a
monitoring phase measures the progress and raises flags when plans and reality disagree.
4. A final closing phase, where the project outputs are handed out and the project is closed.
20
AMOUNT & INTENSITY OF WORK
Monitor
Cumulative
Work
Time
DELIVERS AN OUTPUT
The outputs are tangible, and often their proper- ties are also measurable. Thus, a project can be set up and
organized, starting from the description and the characteristics of the outputs it delivers.
The description of the project outputs also defines the project completion criteria: the project ends when the outputs
are delivered as specified. Things are not always so simple, however.
Consider, for instance, a situation in which we want to improve the performances of a software system. The goal is
clear, but the means to achieve it might not. In other situations, the outputs might not be completely clear or well
spelled out. This is quite common in software development, where coming out with a complete and unambiguous
description of a system is not always easy.
22
RESOURCE CONSTRAINED
A limited time is available to build the project outputs. Also limited will be other project resources, such as the
budget and the team.
An important consequence is that the project manager and the team have to find an achievable solution, while
respecting all project constraints.
Thus, the output of a project is seldom the best possible solution but rather the best solution given the constraints.
23
PROGRESSIVE ELABORATION
24
UNIQUE PRODUCTS, SERVICE, OR RESULT
What a project delivers has some novelty, one way or the other. This allows us to introduce the last important
characteristic, namely, that a project always has some risk coming in the form of menaces or opportunities.
Risks come from the unique characteristics of the project outputs, which sometimes are not fully understood or not
clear when a project starts.
Other risks derive from additional constraints that are set in a project; consider, for instance a situation in which a
customer pushes for a schedule that is too tight or for quality requirements that are set too high.
25
PROJECT MANAGEMENT CONTEXT
Projects are thus often organized and combined to achieve objectives larger than those of any single initiative.
A common classification distinguishes among programs, subprojects, and portfolios.
Programs
A program is a set of related projects managed in a coordinated way. The underlying motivation is that coordination allows one
to achieve additional benefits.
Subprojects
Complex projects for which program management is an overkill can be organized and broken down into subprojects. A
subproject is thus the way in which one can organize the implementation of some specific objectives of a larger
project.
Portfolios
Organizations often use projects to develop similar systems. The term portfolio management thus identifies a situation in which
a set of independent projects arecoordinated to achieve better results.
PROJECTS AND OPERATIONAL WORK
• Work can be categorized either as project or operational
• Common characteristics
– Performed by people
– Limited resources
– Planned, executed, and controlled
• Differences
– Project: obtain goals and terminate
– Operational work: sustain the business
Software Development
Projects
• Consulting Services
– Typically asked to gain a know-how outsize a company’s core
competence