Main textbook,
Introduction to Software Project
Management
Adolfo Villafiorita
Assessment
Group Practical Project 20%
Quizzes in the lectures 20%
Midterm exam 20%
Final Exam 40%
Introduction to the
Course
Motivations (1/3)
• Many courses in computer science and electronic
engineering focus on the technical aspects and on
the notations to develop good software (e.g., how to
do testing; how to write requirements; how to model
systems; UML; Java)
• However, in order to build good software, a well
defined and managed process, which organizes the
activities in an efficient and controlled way
spm - ©2014 adolfo villafiorita - introduction to software project management
Motivations (2/3)
• 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
spm - ©2014 adolfo villafiorita - introduction to software project management
Motivations (3/3)
• 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
spm - ©2014 adolfo villafiorita - introduction to software project management
The Project Management Triangle
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, on
schedule?
– How do I control the quality of the final output?
spm - ©2014 adolfo villafiorita - introduction to software project management
Software Project Management
The Project Management techniques are intrinsically
multidisciplinary …
… what you will learn in this course is applicable to
virtually any other (engineering) domain.
There are however certain characteristics that make
the management of software projects particularly
interesting.
spm - ©2014 adolfo villafiorita - introduction to software project management
Software Project Management
• Software project management is interesting and
challenging because:
– The product is intangible
– The product is uniquely flexible (e.g. different sizes;
different constraints)
– Many software projects are 'one-off'
– The development process is uniquely flexible
– Size and complexity are increasing exponentially
– Human lives might depend on software running as
expected (consider the control system of an
airplane)- safety critical systems
spm - ©2014 adolfo villafiorita - introduction to software project management
Software Development
Projects and
Stakeholders
The name of the game, the players, and
(some of) the rules
Goals of this Unit
• Understanding what is a project, what is the life cycle of
a project and how it differs from other types of works
• Understanding the players and the relationships among
them
• Understanding the influences organizations exert on
project and project executions
spm - ©2014 adolfo villafiorita - introduction to software project management
What is a project
The name of the game
A project is a temporary
endeavor undertaken to
create a unique product,
service, or result
Characteristics of a Project
• Temporary
– Definitive begin and end (either because the goals are met or the project is
closed - goals cannot or will not be met)
– Projects’ results are not necessarily temporary (see project and product
lifecycle)
• Unique products, service, or result
– A product which is quantifiable (e.g. a component, …)
– A capability to perform a service, such a business function
– A result, such as knowledge (collected in documents, presentation, …)
• Progressive elaboration
– Development by steps and in increments (necessary to keep a project
under scope)
• Resource constrained (like everything else in life)
spm - ©2014 adolfo villafiorita - introduction to software project management
Progressive Elaboration
Initiate Plan Execute Close
Monitor
Cumulative
Work
Time
spm - ©2014 adolfo villafiorita - introduction to software project management
Project Management Context
• Subprojects
– Projects may be divided in subprojects (although the sub-
projects may be referred to as “projects” and managed as
such)
• Project and Program Management
– Set of related projects managed in a coordinated way in order
to achieve some sort of benefit
• Portfolios and Portfolio Management
– Collection of unrelated projects or programs and other work
grouped together to facilitate management and meet strategic
objectives
spm - ©2014 adolfo villafiorita - introduction to software project management
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
spm - ©2014 adolfo villafiorita - introduction to software project management
Examples (and counterexamples)
• Cooking dinner
• Building a car
• Designing a car
• Writing a paper
• Developing a software system
• Maintaining a software system
• Managing personnel
spm - ©2014 adolfo villafiorita - introduction to software project management
Software
Development
Projects
Some Examples of Software Development
Projects and Operational Work
Type of “Software” Development Projects
• In your life as a project manager you might be involved
in different types of “software” development projects,
among which:
– Application Development
– Process and Systems Re-Engineering
– System Integration
– Consulting Services
– Installation and Training
spm - ©2014 adolfo villafiorita - introduction to software project management
Application Development
• Goal: developing an application (desktop, web, mobile,
embedded)
• The most fun :-)
• Types of application development:
– One-offs: systems specifically created for a client
– Off-the-shelf: to fill the need of a large set of users
– Customized off-the-shelf: standardized systems which
require a significant amount of customization to be used in an
organization. Example: Enterprise Resource Planning (ERP)
systems
spm - ©2014 adolfo villafiorita - introduction to software project management
Process and Systems Re-Engineering
• Goal: change the way in which the operational work of
an organization is carried out to achieve some strategic
goal (e.g., improve quality, become more efficient)
• Typically large projects which involve an accurate
analysis of the existing situation (“as is”) w.r.t.
procedures, systems, infrastructure
• Often the support the introduction of an ERP system
and require system and data integration activities
spm - ©2014 adolfo villafiorita - introduction to software project management
System Integration Services
• Goal: automating the information flow among the
systems of an organization.
spm - ©2014 adolfo villafiorita - introduction to software project management
Other types of Projects
• Consulting Services
– Typically asked to gain a know-how outside a company’s core
competence
• Installation and Training Services
– Services related to the installation or training on specific
software systems
spm - ©2014 adolfo villafiorita - introduction to software project management
Projects and their
Environment
The players (and you)
A project stakeholder is any
individual or an organization that is
actively involved in a project, or
whose interest might be affected
(positively or negatively) as a result
of project execution or completion.
spm - ©2014 adolfo villafiorita - introduction to software project management
The Players
• Some characteristics:
– They may have different influence and varying level of
responsibility during the project
– They may play different roles
– They may have positive or negative influence on the project
– They may be difficult to identify
– Their lack of intervention may negatively influence the project
(need for identification and involvement)
spm - ©2014 adolfo villafiorita - introduction to software project management
Types of Stakeholders
• The project manager
• The project team
• The project sponsor
• The performing organizations
• The partners
• The client
• The “rest”: anyone who might be affected by the project
outputs
spm - ©2014 adolfo villafiorita - introduction to software project management
Key Stakeholders
• Internal:
– Project team members: the group performing the work
– Project management team: the members of the team directly
involved in project management
• In between:
– Customer/User: person or organization that will use the results of a
project. There may be multiple layers of users
– Sponsor: person or group providing the financial resources
– Performing Organization: the organization mostly involved in the
project
• External:
– Influencers: people or groups not directly related to the project who
could influence the course of a project
spm - ©2014 adolfo villafiorita - introduction to software project management
The Project Manager (you)
• Project Manager
– Person responsible of managing the project and
stakeholders’expectations
• Some skills
– Communication and negotiation skills
– A little predisposition to risk
– Goal orientation
– Leadership
– A bit of thinking outside the schemes
– Solid know-how
– Professional correctness
– A lot of common sense
– A bit of style
spm - ©2014 adolfo villafiorita - introduction to software project management
Organizing the
Development of
Software Projects
Software Project Management
• Software project management is the integration of
management techniques to software development.
• The need for such integration has its root in the sixties,
in the days of the “software crisis”, when practitioners
recognized the increasing complexity of delivering
software products meeting the specifications
spm
What makes a Software Product?
• An application to keep a • What components and
list of movies watched artifacts is it made of?
• A double-entry • What could be the
accounting system for
effects in case of
home or a small
businesses
failure?
• A web service to manage • What kind of
the reservations of squash competences are
courts in a squash club required for its
• A system to plan the development?
resources of a big • What is the associated
corporation
business model?
• An automated breaking
system for a train
spm
Software Development Framework
• A general software project management framework is
meant to:
– Form a shared vision about the goals to be achieved, the
characteristics of the project outputs, and the characteristics
of the development process
– Structure the work as a progressive refinement, from
specification to goals
– Reduce the impact of uncertainties and unknowns
– Highlight any deviation from the plan (goals, costs, quality)
– Ensure the coherency and quality of the project artifacts over
time and in spite of unknowns and (request for) changes
– Motivate your team
spm
Some Concerns
• Feasibility Assessment
• Goals (Scope) Management
• Time Management
• Cost Management
• Change Control and Configuration Management
• Quality Management
• Risk Management
• Human Resource Management
spm
Initiate Plan Execute & Close
Monitor
Assess Formalize Collect
Close
Feasibility Goals Outputs
Monitor Goals, Cost and
Develop Release
Schedule
Define Kick Off
Schedule Activities
Define Costs
[Obtain
Approval]
Change Control & Configuration Management
Quality Management
Risk Management
Human Resource Management