Software Project Management
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
spm - ©2014 adolfo villafiorita - introduction to software project management
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
2
spm - ©2014 adolfo villafiorita - introduction to software project management
What is a project
The name of the game
spm - ©2014 adolfo villafiorita - introduction to software project management
A project is a temporary
endeavor undertaken to
create a unique product,
service, or result
(definition from the PMBOK)
spm - ©2014 adolfo villafiorita - introduction to software project management
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)
6
spm - ©2014 adolfo villafiorita - introduction to software project management
Progressive Elaboration
Initiate Plan Execute Close
Monitor
Cumulative
Work
Time
7
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
8
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
9
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
1
spm - ©2014 adolfo villafiorita - introduction to software project management
0
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
• Types of integration:
– Horizontal: integration of systems performing similar
operations
– Vertical: integration of systems automating different steps of a
procedure
spm - ©2014 adolfo villafiorita - introduction to software project management
Other types of Projects
• Consulting Services
– Typically asked to gain a know-how outsize a company’s core
competence
• Installation and Training Services
– Services related to the installation or training on specific
software systems
– Remark: also a revenue model in open source development
spm - ©2014 adolfo villafiorita - introduction to software project management
Projects and their Environment
The players (and you)
spm - ©2014 adolfo villafiorita - introduction to software project management
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.
(PMBOK)
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)
• Remark: the project manager and the project team are
project stakeholders, although the term is often used to
refer to the “other” stakeholders
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
Stakeholder Identification Exercise
• Identify the stakeholders of the following projects:
– A project to build a bridge connecting an island to the
mainland
– A project to build a landfill (dumping ground)
– A project to build an open source spreadsheet
– A project to build a web-application to monitor one’s weight
– A project to port OpenOffice (a free Office suite) to Android
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
spm - ©2014 adolfo villafiorita - introduction to software project management
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 - ©2014 adolfo villafiorita - introduction to software project management
26
What makes a Software Product?
• What components and artifacts is it made of?
• What could be the effects in case of failure?
• What kind of competences are required for its development?
• What is the associated business model?
spm
spm - ©2014 adolfo villafiorita - introduction to software project management
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
spm - ©2014 adolfo villafiorita - introduction to software project management
28
Some Concerns
• Feasibility Assessment
• Goals (Scope) Management
• Time Management
• Cost Management
• Change Control and Configuration Management
• Quality Management
• Risk Management
• Human Resource Management
spm - ©2014 adolfo villafiorita - introduction to software project management
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
spm - ©2014 adolfo villafiorita - introduction to software project management