SCMWise.com

SCM Plan


SCM Plan Purpose

This SCM Plan is a model for software applications that require a disaster recovery ability.


Typical Software Configuration Management Plan Requirements

  • Well Defined Set of Configuration Items to be Managed
  • Assign Roles and Responsibilities
  • Define Software Configuration Management Standards and Procedures
  • Document the SCM Tools and Their Use
  • Define the Required Metrics to Support the Plan


Source Code
  • Source code availability


Software Application Builds

  • Build Documentation
  • Build Scripts
  • 3rd-Party Build dependencies


Packaging

  • Install Packages
  • Install Documentation



Documents

  • Environment Documents
  • Back-out Plans
  • Test Plans


Implementation

  • Require SCM standard delivery for each internally developed application
  • Possible layout inside each source code repository for DR applications

Repository Name

   |- Source Code Path

   |- DR
        |- Application Release
              |- Artifacts/Packages
              |- Documents
              |- 3rd-Party Dependency Software


SCM Plan Test

  • Create a repository with all the files you need
  • Make a backup of the repository in the same way that you normally make backups
  • Make a bunch of updates
  • Blow away your repository, and replace it with the backup
  • See what happens when you try to do the update from your working copy

IIRC you won't be allowed to make an update. You need to do the following

  • Use 'svn export' to export the head of the working copy
  • Also export the head version of the repository. (only needed if you plan on doing #3)
  • Merge the two together using your favorite merging tool (diff, file merge, whatever)
  • Import the merged directory back into your repository using 'svn import


Build Technologies

Tool Requirements
Visual Build VisualBuild scripts should be checked into source control. VisualBuild serial number available.
CruiseControl Cruise Control configuration should be checked in for each build server.
Ant Ant scripts should be checked into source control.
Maven Maven build scripts and POM files should be checked into source control.
Other Technologies Their scripts and configuration files should be checked into source control.


Packaging Tools

Tool Requirements
InstallShield InstallShield scripts should be checked into source control. InstallShield license keys should be checked into SCM Tool
Wyse Wyse scripts need to be checked into SCM Tool.
Ant Ant scripts should be checked into source control.


Documentation

Document Requirements
Build Document Complete documentation on the build environment and build instructions.
Run-time Environment Documents Complete configuration and
Back-out Plans Complete set up instructions how to roll-back changes.
Testing Plans Complete set up instructions how to test environment and applications.


Implementation

Requirements: Tier 1 available within 24hrs of incident.

Require SCM standard delivery for each internally developed application

Criticality Categorization Criteria Vital (Tier I) Critical (Tier II) Important (Tier III) Deferred (Tier IV)
High Availability Yes Yes No No
DR Percent Capacity 100% 100% 50% 50%
Local Replication Yes Yes No No
Site Replication Yes Yes No No
Tape Backup Yes Yes Yes Yes
Primary Data Recovery Replication Replication Tape Restore Tape Restore
Secondary Data Recovery Tape Restore Tape Restore
Recovery Time (RTO) 24 hrs 48 hrs 72 hrs 72 hrs


High Level SCM DR Plan

Source (Tier III)

  • Source code availability
  • Repositories (SVN, TFS, VSS, Dimensions)
  • Remote access (vss client, Visual Studio, etc)
  • Application Build (Tier IV)
  • Build Documents
  • Assumes the source code has been restored and available.
  • Build Scripts
  • Assumes the source code has been restored and available.
  • 3rd-Party Build dependencies
  • Build server available with typical build server technologies: Visual Build, Visual Studio, Nant, Wix, TortoiseSVN, SVN, Installshield, Packaging (Tier II)
  • Install Packages
  • ProdTovr must be available,
  • Install Documentation
  • Document Repository/Archive Documents (Tier II)
  • Environment Documents
  • Repository (Wiki, Sharepoint, Intranet...)
  • Back-out Plans
  • Document Repository/Archive
  • Test Plans
  • Implementation

    Require SCM standard delivery for each internally developed application Possible layout inside each source code repository for DR applications Repository Name -> Source Code Path -> DR -> Application Release -> Artifacts/Packages -> Documents -> 3rd-Party Dependency Software


    Software Configuration Management Plan Links



    Software Configuration Management Table of Contents

    Software Configuration Management Software Configuration Management are the practices and procedures for administering source code, producing software development builds, controlling change, and managing software configurations.

    Software Configuration Management Software Configuration Mgmt is a software development support and control function. Specializing in software building, installation packaging, change control and configuration management.

    Software Configuration Management Plan This document will cover source code administration, build environment standards and define the process by which new components will be added to builds, and a common understanding of how we will manage broken builds.

    Software Configuration Management Systems Software Configuration Management Systems are the end-to-end tools and procedures that encompass the Software Configuration Management Systems. These are more than just software builds and version control tools. These are the processes you build that surround these tools.

    Software Configuration Management Strategies Software Configuration Management Strategies can be difficult to define. Your SCM strategies can be as simple as providing excellent SCM service, but they can be more complex by introducing process improvement to your already existing service.

    Software Configuration Management Best Practices Software Configuration Management Best Practices are designed and implemented to ensure software quality, integrity and reproducibility. Best Practices are methods and techniques that are proven to be the most effective way of ensuring repeatability of a processes.

    General Best Practices Software Configuration Management Best Practices are designed and implemented to ensure software quality, integrity and reproducibility. Best Practices are methods and techniques that are proven to be the most effective way of ensuring repeatability of a processes.

    SCM Plan This SCM Plan is a template model for software applications that require a disaster recovery plan.

    SCM Books SCM Books is a collection of books and descriptions that can be a valuable resource and background for installation packaging, software builds, source control, software engineering or engineering in general

    Genius Richard Feynman Genius Richard Feynman was written by James Gleick. Genius - The Life and Science of Richard Feynman a 20th century Physics.

    Genius James Gleick Genius James Gleick - The Life and Sciences of Richard Feynman.

    SCM Performance Goals SCM Performance Goals are set to help the SCM Engineer achieve high performance standards. The goals need to be clear, direct and ongoing feedback from management.

    SCM Goals SCM Goals are a sample set of performance objectives that can be used as an example of typical Software Configuration Management Goals.

    Forrester Reports This page contains a listing of Forrester Reports for SCM tools. Forrester is a leading company in discovering vendor tool directions and consumer trends. This is a listing of Forrester Reports of SCM tools.

    Software Engineering The IEEE Computer Society defines Software Engineering as the application of a systematic, disciplined and quantifiable approach to the development, maintenance and operation of software.

    SCM War Stories SCM War Stories are a collection of typical SCM anti-patterns that most experienced SCM Engineers have all lived through.

    Circumventing Build Process Circumventing Build Process happens for many reasons. For example, it can happen because someone decides schedule is more important than software quality. Another example, might be that the person making the decision to circumvent the build process does not understand the implications of their decision.

    Untested Software Untested software is an anti pattern due to a project that is behind schedule. A decision to proceed with the delivery to demonstrate progress of a project over the proper testing has taken place to ensure quality. Untested Software is a common Software Engineering Antipattern.

    What is SCM What is SCM? SCM encapsulates the practices and procedures for administering source code, producing software development builds, controlling change, and managing software configurations. Specifically, SCM ensures the integrity, reliability and reproducibility of developing software products from planning to release.

    Why Use SCM Why Use SCM? Software Configuration Management ensures software build repeatability and reproducibility. SCM enforces Source Code Administration Best Practices and proper Software Change Management practices are followed.

    SCM Websites Software Configuration Management Websites a listing of top SCM sites and other interesting Websites. This page attempts to identify the truly unique Websites. Please visit them.

    SCMWise Software Configuration Management SCMWise is dedicated to SCM. This site is a central repository for the collection of best practices, processes, methodologies and tools that surround SCM.






  • SCMWise Preferred Partner

    SBI! 2.0


    SCMWise Configuration Spec



    SCMWise Recommends

    Site Build It!


    XML RSS
    What is this?
    Add to My Yahoo!
    Add to My MSN
    Add to Google


    © Copyright 2007 - 2013
    Powered by Site Build It!
    Page copy protected against web site content infringement by Copyscape SCMWise.com's Privacy Policy
    ADD TO YOUR SOCIAL BOOKMARKS: add to BlinkBlink add to Del.icio.usDel.icio.us add to DiggDigg
    add to FurlFurl add to GoogleGoogle add to SimpySimpy add to SpurlSpurl Bookmark at TechnoratiTechnorati add to YahooY! MyWeb