Software Configuration Management Beyond Version Control Alec Clews <alec.clews@voga.com.au> Voga Consulting Services HeadWest Software Inc.
Agenda What is SCM? Why is it a good idea? What is process management improvement? An SCM check list What SCM will not do for us SCM at a typical c orporation
What is SCM All things to all people... Version control, release management, deployment, test management, magic solution to all problems... Set of  disciplines , practices and methods supported by a tool set Allows large teams to make many changes to complex system Must include a minimum of version control, baseline identification, change management Also useful – breakdown, build and release management, process support
IEEE standard 729-1983 Identification An identification scheme is needed to reflect the structure of the product. This involves identifying the structure and kinds of components, making them unique and accessible in some form by giving each component a name, a version identification, and a configuration identification. For example, this addresses the question, &quot;What version of the file is this?&quot;
IEEE standard 729-1983 Control Controlling the release of a product and changes to it throughout the lifecycle by having controls in place that ensure consistent software via the creation of a baseline product. For example, this addresses the question, &quot;How many changes went into the latest version of this product?&quot;
IEEE standard 729-1983 Status Accounting Recording and reporting the status of components and change requests, and gathering vital statistics about components in the product. For example, this addresses the question, &quot;How many files were affected by fixing this one bug?&quot;
IEEE standard 729-1983 Audit and Review Validating the completeness of a product and maintaining consistency among the components by ensuring that components are in an appropriate state throughout the entire project life cycle and that the product is a well-defined collection of components. For example, this addresses the question, &quot;Are all the correct versions of files used in this current release?&quot;
So why do we need all this? All we really know is that things will change People will move on People make omissions and mistakes People make undocumented assumptions Our systems are getter larger and more complex We have less time and fewer people to get the work done
Process Management Make sure we Record all the important information Do things the same way each time (Best Practice) Stop stuff falling between the cracks Need some form of  work flow  tool Consider With enough information and resources you can promote process improvement (e.g. Deming PDCA)
Process Improvement Goals Reduce defeats Rework, financial costs, delays, credibility Manage Changes Understand why we are making changes Number of changes, costs etc. Aspire to best practice STOP BAD THINGS HAPPENING IN PRODUCTION!
Simple SCM you can do at home for $0 Always use a version control tool (e.g. Subversion) Use a ticket system, e.g. RT Log all version changes against a ticket Use automated build and test scripts. Save all build logs using CruiseControl Base new changes on existing baselines (tags in Subversion)
SCM at Xcorp, a too typical example Multiple pockets with lack of control. Some teams are using MS VSS, Subversion, CVS... Some part of the business have  rigorous  audit  requirements  and use very  sophisticated  tools e.g. Serena Dimensions and TeamTrack IBM Rational ClearCase/UCM/ClearQuest
What SCM tools do not do Run the  Help desk Do the Project Management Control operational  environments   Provide personnel systems, CRM  etc.   etc. Replace skilled  practitioners

SCM: An Introduction

  • 1.
    Software Configuration ManagementBeyond Version Control Alec Clews <alec.clews@voga.com.au> Voga Consulting Services HeadWest Software Inc.
  • 2.
    Agenda What isSCM? Why is it a good idea? What is process management improvement? An SCM check list What SCM will not do for us SCM at a typical c orporation
  • 3.
    What is SCMAll things to all people... Version control, release management, deployment, test management, magic solution to all problems... Set of disciplines , practices and methods supported by a tool set Allows large teams to make many changes to complex system Must include a minimum of version control, baseline identification, change management Also useful – breakdown, build and release management, process support
  • 4.
    IEEE standard 729-1983Identification An identification scheme is needed to reflect the structure of the product. This involves identifying the structure and kinds of components, making them unique and accessible in some form by giving each component a name, a version identification, and a configuration identification. For example, this addresses the question, &quot;What version of the file is this?&quot;
  • 5.
    IEEE standard 729-1983Control Controlling the release of a product and changes to it throughout the lifecycle by having controls in place that ensure consistent software via the creation of a baseline product. For example, this addresses the question, &quot;How many changes went into the latest version of this product?&quot;
  • 6.
    IEEE standard 729-1983Status Accounting Recording and reporting the status of components and change requests, and gathering vital statistics about components in the product. For example, this addresses the question, &quot;How many files were affected by fixing this one bug?&quot;
  • 7.
    IEEE standard 729-1983Audit and Review Validating the completeness of a product and maintaining consistency among the components by ensuring that components are in an appropriate state throughout the entire project life cycle and that the product is a well-defined collection of components. For example, this addresses the question, &quot;Are all the correct versions of files used in this current release?&quot;
  • 8.
    So why dowe need all this? All we really know is that things will change People will move on People make omissions and mistakes People make undocumented assumptions Our systems are getter larger and more complex We have less time and fewer people to get the work done
  • 9.
    Process Management Makesure we Record all the important information Do things the same way each time (Best Practice) Stop stuff falling between the cracks Need some form of work flow tool Consider With enough information and resources you can promote process improvement (e.g. Deming PDCA)
  • 10.
    Process Improvement GoalsReduce defeats Rework, financial costs, delays, credibility Manage Changes Understand why we are making changes Number of changes, costs etc. Aspire to best practice STOP BAD THINGS HAPPENING IN PRODUCTION!
  • 11.
    Simple SCM youcan do at home for $0 Always use a version control tool (e.g. Subversion) Use a ticket system, e.g. RT Log all version changes against a ticket Use automated build and test scripts. Save all build logs using CruiseControl Base new changes on existing baselines (tags in Subversion)
  • 12.
    SCM at Xcorp,a too typical example Multiple pockets with lack of control. Some teams are using MS VSS, Subversion, CVS... Some part of the business have rigorous audit requirements and use very sophisticated tools e.g. Serena Dimensions and TeamTrack IBM Rational ClearCase/UCM/ClearQuest
  • 13.
    What SCM toolsdo not do Run the Help desk Do the Project Management Control operational environments Provide personnel systems, CRM etc. etc. Replace skilled practitioners