Skip to main content
Jeannine Jacobs
Configuration Management – Chapter 18
“…Rapid software changes is one of the more important tasks of software
systems development and maintenance teams. The task encompasses
adequate quality assurance of all changes performed and their proper
documentation as well as identification of the software version (or
release) installed by each customer” (Galin).
Software Configuration Management
 Book Definition - An SQA component responsible
for applying (computerized and non-computerized)
technical tools and administrative procedures that
enable completion of the tasks required to
maintain SCIs and software configuration
versions.
 ISO 9000–3 standards
SCM deals with all the issues related to:
 software changes
 documentation of changes
 organizing approved software versions,
 Provide information and copies of registered
versions throughout the life cycle
Software Configuration Version
 Approved set of documented SCI versions that constitute a software system
or document at a given point of time
 Activities are controlled by software configuration management procedures.
 Versions are released according to the set procedures
Software Configuration Item (SCI)
 Approved unit of software code designed for configuration management
 Treated as a distinct entity
Do you have a chart similar to this at your job??
What information is needed for the review board
to make a decision?
 Change principles
 Change details
 Change timetable and resources estimates
WHY?
Defective SCIs
Special Features demanded by NEW customers
Improvements to current SCIs
Types of Releases
Revisions
Baseline versions
Intermediate versions
NumberingConventionsExample
Baseline: milestones in lifecycle (reviewed, tested, and approved)
 Revisions: small adjustments before a baseline is released.
Intermediate: fixes for smaller issues (temporary)
Reasons to consider accepting a change:
 Contribution of the proposed change
 Urgency
 Effect on project timetables, level of service, etc.
 Effort required
 Required SQA efforts
 Resources and cost of performing the change
 Define levels of control and responsibility
 Identify SCI (Software Configuration Items)
 Define CM procedures
 Prepare the CM plan
 Establish the software project CCB (Change Control Board)
 Set up CM tools and library
-Susan Sekira
NASA Goddard Space Flight Center
DEV/OP STAGES
? How do these plan objectives strengthen the effect of SCM?
Evolution Models
Linear Model
 Only ONE unique version
 All customers use same version
 Single organization
 Packages with similar structure
Tree Model
 Parallel versions
 Serves different customers at same
time
 Firmware Configurations
• Information related to software change control
• Information about SCIs and software configuration versions
SCM audits are performed to evaluate
compliance with SCM procedures
They cannot serve as compliance enforcement tools
Examples:
• Percentage of unapproved changes
• Percentages of properly documented new SCIs
• Percentage of design reviews and software tests of changed
SCIs that have not been performed according to the
relevant procedures
• Percentage of cases of failure to transmit all version–related
information to the customer.
What are the risks involved with partial compliance? ?
“5 Things About Configuration
Management Your Boss Needs to Know”
 Configuration Management (CM)
ensures that the current design and
build state of the system is known,
good & trusted; and doesn’t rely on the
tacit knowledge of the development
team. [IT Automation]
 “You can pay me now, or you can pay
me later.” The quote is just as valid
with regard to Configuration
Management.
 New York Stock Exchange (NYSE)
dealt with back over 10 years ago. A
software “glitch” prevented the NYSE
from trading stocks for almost 90
minutes.
“Top 10 Best Practices in
Configuration Management”
 Organize Shared Code into
Separate Products- The best
practice in this situation is to
partition the shared code into one
(or more) separate products.
 Separate Problems/ Issues/
Defects from Activities/ Features/
Tasks- It's critical to
distinguish engineering problems
from features as they are completely
different processes.
 Continuous Automation- The more
advanced the automation, the higher
your quality and the lower your
costs
“A tool is only as good as you use it,” the saying goes…When
deploying new software configuration management (SCM) tools,
implementers sometimes focus on perfecting fine-grained
activities, while unwittingly carrying forward poor, large-scale
practices from their previous jobs or previous tools. The result is
a well-executed blunder.
High-level Best Practices in Software Configuration
Management
By Laura Wingerd & Christopher Seiwald
Training
Ansible, Puppet, and Docker
?
Bonus Question:
What is an Ansible?
Improved change quality
With Puppet Enterprise, everyone,
including the change management team,
has confidence in the quality of changes.
That’s because as changes go through
the different environments — dev, test,
pre-production — everyone has high
confidence that these upstream
environments look just like production.
PACKAGE YOUR APPLICATION INTO
A STANDARDIZED UNIT FOR
SOFTWARE DEVELOPMENT
Docker containers wrap a piece of
software in a complete filesystem that
contains everything needed to run:
code, runtime, system tools, system
libraries – anything that can be
installed on a server.
This guarantees that the software will
always run the same, regardless of its
environment.
References
• UpGuard . (2016). 5 Things About Configuration Management Your Boss Needs To Know. Retrieved from UpGuard :
https://www.upguard.com/blog/5-configuration-management-boss
• Farah, J. (2007, Nov 27). Top 10 Best Practices in Configuration Management. Retrieved from CM Crossroads:
https://www.cmcrossroads.com/article/top-10-best-practices-configuration-management?page=0%2C7
• GALIN, D. (2004). Software Quality Assurance: From theory to implementation. Essex: Pearson Education Limited.
• Wingerd, L. a. (1998, Jul). High-level Best Practices in Software Configuration Management. Retrieved from Perforce:
https://www.perforce.com/sites/default/files/pdf/perforce-best-practices.pdf
• Lego Image: http://theremedyforit.com/2011/12/version-control-in-bmc-ars/
• CMP Flow Chart: Susan Sekira, NASA Goddard Space Flight Center, March 2008: http://www.slideshare.net/adorepump/software-
configuration-management-presentation-878520/5
• Change Request Form: http://OpenThinkLabs.com
• Final.doc Comic: PHDComics.com
• Version Control Comic: http://www.eeweb.com/rtz/version-control
• CMPIC: https://www.cmpic.com/PDFs/CMPIC_Brochure.pdf
• Justin: http://www.justin.fi/en/services/training/practical-configuration-management/
• Rocannon’s World Book Image: https://en.wikipedia.org/wiki/Rocannon%27s_World
• Ansible Website: https://www.ansible.com/configuration-management
• Puppet Case Study: https://puppet.com/resources/case-study/lv/thank-you
• Docker Website: https://www.docker.com/