SCM: An Introduction


Published on

A very old presentation to Linux Users of Victoria on the basic of Software Configuration Management

Published in: Technology, Business
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

SCM: An Introduction

  1. 1. Software Configuration Management <ul><ul><li>Beyond Version Control </li></ul></ul><ul><ul><li>Alec Clews </li></ul></ul><ul><ul><li><> </li></ul></ul><ul><ul><li>Voga Consulting Services </li></ul></ul><ul><ul><li>HeadWest Software Inc. </li></ul></ul>
  2. 2. Agenda <ul><li>What is SCM? </li></ul><ul><li>Why is it a good idea? </li></ul><ul><li>What is process management improvement? </li></ul><ul><li>An SCM check list </li></ul><ul><li>What SCM will not do for us </li></ul><ul><li>SCM at a typical c orporation </li></ul>
  3. 3. What is SCM <ul><li>All things to all people... </li></ul><ul><ul><li>Version control, release management, deployment, test management, magic solution to all problems... </li></ul></ul><ul><li>Set of disciplines , practices and methods </li></ul><ul><ul><li>supported by a tool set </li></ul></ul><ul><li>Allows large teams to make many changes to complex system </li></ul><ul><li>Must include a minimum of version control, baseline identification, change management </li></ul><ul><ul><li>Also useful – breakdown, build and release management, process support </li></ul></ul>
  4. 4. IEEE standard 729-1983 Identification <ul><li>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; </li></ul>
  5. 5. IEEE standard 729-1983 Control <ul><li>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; </li></ul>
  6. 6. IEEE standard 729-1983 Status Accounting <ul><li>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; </li></ul>
  7. 7. IEEE standard 729-1983 Audit and Review <ul><li>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; </li></ul>
  8. 8. So why do we need all this? <ul><li>All we really know is that things will change </li></ul><ul><li>People will move on </li></ul><ul><li>People make omissions and mistakes </li></ul><ul><li>People make undocumented assumptions </li></ul><ul><li>Our systems are getter larger and more complex </li></ul><ul><li>We have less time and fewer people to get the work done </li></ul>
  9. 9. Process Management <ul><li>Make sure we </li></ul><ul><ul><li>Record all the important information </li></ul></ul><ul><ul><li>Do things the same way each time (Best Practice) </li></ul></ul><ul><li>Stop stuff falling between the cracks </li></ul><ul><li>Need some form of work flow tool </li></ul><ul><li>Consider </li></ul><ul><li>With enough information and resources you can promote process improvement (e.g. Deming PDCA) </li></ul>
  10. 10. Process Improvement Goals <ul><li>Reduce defeats </li></ul><ul><ul><li>Rework, financial costs, delays, credibility </li></ul></ul><ul><li>Manage Changes </li></ul><ul><ul><li>Understand why we are making changes </li></ul></ul><ul><ul><li>Number of changes, costs etc. </li></ul></ul><ul><li>Aspire to best practice </li></ul><ul><li>STOP BAD THINGS HAPPENING IN PRODUCTION! </li></ul>
  11. 11. Simple SCM you can do at home for $0 <ul><li>Always use a version control tool (e.g. Subversion) </li></ul><ul><li>Use a ticket system, e.g. RT </li></ul><ul><li>Log all version changes against a ticket </li></ul><ul><li>Use automated build and test scripts. Save all build logs using CruiseControl </li></ul><ul><li>Base new changes on existing baselines (tags in Subversion) </li></ul>
  12. 12. SCM at Xcorp, a too typical example <ul><li>Multiple pockets with lack of control. Some teams are using MS VSS, Subversion, CVS... </li></ul><ul><li>Some part of the business have rigorous audit requirements and use very sophisticated tools e.g. </li></ul><ul><ul><li>Serena Dimensions and TeamTrack </li></ul></ul><ul><ul><li>IBM Rational ClearCase/UCM/ClearQuest </li></ul></ul>
  13. 13. What SCM tools do not do <ul><li>Run the Help desk </li></ul><ul><li>Do the Project Management </li></ul><ul><li>Control operational environments </li></ul><ul><li>Provide personnel systems, CRM etc. etc. </li></ul><ul><li>Replace skilled practitioners </li></ul>