You are on page 1of 23

Managing Changes,

Risks, and Quality


Goals of the Unit
• Requests for changes and changes will occur in your
project
• The goal of this unit is understanding:
– The importance of keeping a project under scope
– How request for changes can positively or negatively influence
your project
– The techniques to manage changes

spm - ©2014 adolfo villafiorita - introduction to software project management !2


The Framework
• The scope document formalizes the goals of a project
• Ideally, once the goals are fixed, the project should move
on to the design/implementation phase and achieve the
project goals, through a progressive refinement
• Any deviation from such course of action is a perturbation
(it changes goals, plans, costs, outputs, work to be
performed, …)
• Changes, however, are inevitable
• The goal of a sound project management, therefore, is
ensuring that the change process is properly managed

spm - ©2014 adolfo villafiorita - introduction to software project management !3


Fundamental Concepts
• Change Control is the set of practices to ensure
request for changes are properly taken care of
• Configuration Management is the set of practices
to ensure project outputs remain coherent over time
!
• Change Control and Configuration Management span over the
lifecycle of the project outputs
• In software projects artifacts are extremely simple to change

(e.g., editing a file)
• In software projects, connection with bug reporting/bug lifecycle

spm - ©2014 adolfo villafiorita - introduction to software project management !4


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


Change Control
Causes of Request for Changes
• Incompleteness or incoherencies in the project
requirements or in the description of work
• A better comprehension of the system to be
developed
• A technical opportunity
• A technical challenge
• A change in the external environment
• Non-compliance of a project deliverable

spm - ©2014 adolfo villafiorita - introduction to software project management !7


A Change Control Process
Check and
Approve
Request Formally Evaluate Impact
Reject
Record

Change Request Change Request Impact Assessment Directive

(formally tracked) Action Items

Execute Record and


Changes Distribute

Artifacts

(updated)

• It runs in parallel to the other PM activities


throughout the project
spm - ©2014 adolfo villafiorita - introduction to software project management !8
Comments
• A change control board might be appointed to
approve/reject changes
• The cost and risk of changes increase as the project
moves to the delivery
• The process ensures a formal record is kept and and a
clear procedure is set to evaluate the impact of
changes
• Change and change management is embraced by agile
methodologies (changes “treated” as requirements)

spm - ©2014 adolfo villafiorita - introduction to software project management !9


Software Evolution
Models
What makes a Software System
• Software systems are made of many different artifacts
(sources, libraries, external libraries, documentation,
conversion scripts, databases)
• Software systems run in many different configurations
(e.g., base/pro, versions 1 and 2, Linux/OSX/Windows)
• Two sources of complexity need to be addressed to
develop or maintain a software product:
– Identification of the artifacts
– Evolution

spm - ©2014 adolfo villafiorita - introduction to software project management !11


Linear Development Model

replaces Source replaces Source


Source Code
Code Code
Version 1
Version 2 Version 3

produces produces produces

Application Application Application


Version 1 Version 2 Version 3

spm - ©2014 adolfo villafiorita - introduction to software project management !12


Branching Development Model
Source Source Source
Code Code Code
Version 1.1 Version 2.1 Version 2.1

Source replaces Source replaces Source


Code Code Code
Version 1 Version 2 Version 3

produces produces produces produces produces

Application Application Application Application Application


Version 1 Version 1.1 Version 2 Version 2.1 Version 3

spm - ©2014 adolfo villafiorita - introduction to software project management !13


Software Development Models
• Linear development:
– Only one version of an application is running at any given time
(Example: one-offs; many web applications are one-offs)

• Branching development:
– Various versions of an application are running at a given time

spm - ©2014 adolfo villafiorita - introduction to software project management !14


Configuration
Management
Configuration Management

Configuration Management (CM) is a


set of activities running in parallel to
the development process, whose goal
is establishing and maintaining
system’s coherency over time
!
– Part of the project management plan
– Helps define project standards and best practices

spm - ©2014 adolfo villafiorita - introduction to software project management !16


Configuration Management Main Goals
• Being able to build a system from a consistent set of
components
• Being able to retrieve a software component when
needed (consider: storage time, storage means)
• Being able to view the history of changes a system has
undergone
• Being able to retrieve a previous version of a system
!
• Remark: closely related to the change management
process

spm - ©2014 adolfo villafiorita - introduction to software project management !17


Some Examples
• A bug is reported by a user on a COTS software we
have been selling for ten years.
• A client requests an enhancement to a one-off system
we sold in 2005.
• We need to reproduce/understand an odd behavior of
the control software of a space exploration probe which
is now orbiting Jupiter

spm - ©2014 adolfo villafiorita - introduction to software project management !18


Steps and Tools: Establish Baseline
• The first step is “establishing what a product is”
• A good CM requires to:
– Clearly identify the items which constitute a product
– Identify the relationships among these items
– Choose an appropriate identification and numbering
scheme for versions
– Take “snapshots”: baseline records

spm - ©2014 adolfo villafiorita - introduction to software project management !19


Steps and Tools: Manage Changes
• The second step is “maintaining coherency over time”
• A good CM process requires to:
– Define the “baseline record” (the starting point)
– Identify and approve requests for changes (see change
control)
– Formally record changes and history of each item
– Maintaining old versions


• For family of products there could be different


baselines. Changes might need to be applied to one
or more baseline (consider a security fix to a browser)

spm - ©2014 adolfo villafiorita - introduction to software project management !20


Steps and Tools: Considerations
• For software development, a version control system
implements various of the functions described above
• Tools are not sufficient: an adequate process has to be
in place
• Semantic versioning is an example of numbering
schema

spm - ©2014 adolfo villafiorita - introduction to software project management !21


Version Control Systems: Main Concepts
• Working version: the file (or set of files we are
currently editing)
• Repository: the storage where all versions of a file (or
set of files) are kept together with additional information

Repository Repository'
Files Files
a.each do |x|
puts x History Log a.each do |x|
puts do
a.each x |x| History Log
end end
puts x

#a.each do |
x|
Tags end
#a.each do |
x|
#a.each do |
Tags
#puts x x| #puts x
#end
Version N. #end
#puts
#end
x
Version N.

a.each do |x| a.each do |x|


puts x
end
commit checkout puts x
end
commit
#a.each do |x| #a.each do |x|
#puts x #puts x
#end #end

spm - ©2014 adolfo villafiorita - introduction to software project management !22


Version Control Systems: Main Concepts
• In the simple case (early VCS) each file would have an
independent repository
• Coherence is kept by assigning the same tags to all
artifacts constituting a baseline
• More recent VCS manage sets of artifacts in an
integrated way
• Tagging is used to mark important baseline records
• A VCS typically support parallel access and editing of
artifacts

spm - ©2014 adolfo villafiorita - introduction to software project management !23

You might also like