Beyond Software Configuration
Management
Improvement in the Quality and Reliability of the Software Development Process
Ramesh Jangareddi EMC Corporation
Agenda
! Introduction ! Project environment ! SCM importance ! Goals ! Approach! Results and benefits
! Challenges faced
! Learned lessons
Introduction
! EMC is the world’s automated networked storage
leader.
! Our group develops a product to simplify and
automate the management of multi-vendor networked storage environment.
Project Environment
! Large team of engineers involved in this project, including local sites and the sites that are
geographically distributed.
! The demand for software functionality was
increasing steadily.
! Dealing with new products and new features at an
increasing pace.
! Projects were trying to meet both specific customer requests and general competitive pressure.
Few Words on SCM
! Software configuration management (SCM) is the
discipline of managing and controlling the evolution of the system software.
! The purpose of the SCM is to establish and maintain
the integrity of the products of the software project through out the project’s software life cycle.
! SCM is achieved through several primary functions:
— Identification, documentation, control, and audit.
! SCM is one of the key process area for SW-CMM level
2.
Key Process Area Goals for
SW-CMM Level 2 on SCM
1. Software configuration management activities are
planned.
2. Selected software work products are identified,
controlled, and available
3. Changes to identified software work products are
controlled.
4. Affected groups and individuals are informed of
Goals on process improvement
! Able to identify all the release artifacts for every current and future releases
! Able to unify the activities used to plan and track project progress with the artifacts being changed
! Closely integrate the change management with the
software artifact changes
! Select tool(s) and prove the process improvement
by instituting a pilot project
! No impact expected on the production
environment.
Initiative
! Tool research
! Learning curve
! Budget
! Management approval
! Design and plan the
implementation process
Our Approach…
! Unified Change
Management Model
! Define process
! Integration with the Change tracking system
! Customize the model to
fit our goals
! Automate the change
management steps
Implementation Mechanics
! No impact on the
production environment
! Reduce the risk
involved
! Prove the process
improvements with pilot implementation
! Deployment upon
successful pilot
! Identify the resources
Pilot Institution
! Set the requirements/expectations for each phase
! Created a replica of the existing development environment
! Implement the defined process
! Training provided on procedures, and methods to
be followed for SCM activities
! Follow up meetings for feedback regularly
! Instantiate and assign the work
! Simulate the integration test environment
Participation
At least one of the representative(s) from the following teams were participated ! Architecture/Design ! Development manager(s) ! Development engineer(s) ! Project Manager(s) ! Integration ! QA
Phase - I
! The objective is to get the feedback on the basic process and
the SCM tools used.
! 10+ engineers participated from various development groups.
! Provided required training.
! Results were expected after 2 weeks.
Phase - II
! Objective is to work on the simulated product
release process and track SCM activities over the product life cycle.
! 25+ participants participated– geographically distributed
! Phase – I feedback/suggestions incorporated
! Test out the whole life cycle of the product
! Identify all the software artifacts for each release
! Monitor the change request life cycle
! Able to identify the risk on any change request
Deployment Considerations
! Reduced productivity risk tremendously
! Reduction in implementation time
! Training provided for all teams
! Documentation on procedures, methods on SCM
activities
Results and Benefits
! A more disciplined and thorough approach to process
improvement.
! Senior managers and program managers exhibit more
confidence with the model.
! Increase in quality.
! Effective release tracking.
! Prompt product deliveries.
! Improved insight into a project's status leading to:
— Better decision- making regarding schedule and resource
allocation.
— Better understanding of risks or problem areas.
— Improved communication of status to all levels: the individual,
Summary
Our model is a strategic approach for implementing :
! Process improvement
! Project management methodology
! Systems development life cycle methodology
! Software engineering processes
! Organizational processes
Challenges Faced
! Introducing change ! Pilot schedules ! Training ! Customizations ! Policy enforcementsLessons Learned
! No shortcuts
! Can’t eliminate development of basic project
! Management practices and processes
! Must tie process improvement to business objectives
! Use a project model to link your methodologies, processes,
and standards
References
! Antipatterns and patterns in software configuration management by William J. Brown, hays W. “Skip” McCormick III, and Scott W. Thomas, ISBN 0-471-32929
! The capability maturity model – guidelines for
improving the software process, Carnegic Mellon university, software engineering institute, ISBN 0-201-54664-7
! Software configuration management strategies and
rational ClearCase, Brian A. White, ISBN 0-201-60478-7