CAMS Banner [skip navigation] NIST Home Page A-Z Subject Index Search NIST Webspace Contact NIST NIST Home

Commerce Administrative Management System (CAMS) Program Management Plan (PMP)

9.7   APPENDIX G - CAMS Configuration Management Plan

9.7.1   Configuration Management Overview
9.7.1.1.1   Introduction
This document is intended to serve as a job aid to help foster solid CM procedures among the NIST CAMS Implementation Team.

Configuration Management (CM) enables the controlled and repeatable management of CAMS-critical software and documents as they evolve in all stages of development and maintenance. CM implements a process by which the project teams and stakeholders identify, communicate, implement, document and manage changes in their configuration items. For the purposes of the NIST CAMS Implementation project, a configuration item (CI) is defined as either software or documentation that impacts the project in such a way that steps must be taken to ensure its integrity and to tracks changes made to the item. When properly implemented, CM ensures the integrity of the items that have been placed under its control.

9.7.1.1.2   Purpose
The purpose of this CM Plan is to establish a sound CM approach that maintains the integrity of the NIST CAMS Implementation products and provides traceability for changes incorporated into software and documentation. The CM process integrates the technical and administrative actions of identifying the functional, performance and physical characteristics of a configuration item (CI) and controls the changes to those characteristics. This plan includes CM guidelines for all software and documentation originating from, distributed by, or used within the NIST CAMS Implementation team, and as defined within this plan.

9.7.2   Project Overview
The Department of Commerce (DOC) is currently implementing a number of financial system packages as part of its Commerce Administrative Management System (CAMS) effort. The central piece of this effort is a software package known as the Core Financial System (CFS). CFS provides several standard financial applications including General Ledger (GL), Accounts Payable (AP), Accounts Receivable (AR), Budget Execution (BE), Cost Allocation (CA) and financial and management reporting.

Beginning in June 2001, the Phase III Implementation was initiated, which will expand the CAMS implementation to other organizations within NIST - including NIST, The National Telecommunications and Information Administration (NTIA), & Technology Administration (TA), with the possibility of integrating other CAMS-related modules (e.g. Travel, procurement). The Phase III goal is to have CAMS fully implemented by October 2003.

The overall goal of these CAMS implementations is to consolidate and streamline NIST financial business processes, transactions and systems to enhance internal controls and the ability to access critical data in a timely manner.

Please refer to the detailed Project Plan for additional information. The document defines and describes the project to which this CM Plan applies. The document includes the scope of the project, timetable, milestones, key deliverables, roles and responsibilities, reporting structure, and other project-specific information. The detailed Project Plan is located on the project’s LAN (Durango), under the following path: N:\CAMS\NIST Implementation\Project Plan.

9.7.3   Configuration Management Approach
9.7.3.1.1   Project Environment
The NIST CAMS Implementation project site is located at the NIST campus in Gaithersburg, Maryland. The main campus is comprised of several government-owned buildings open for entry at all times, and is occupied by NIST personnel, contractors, students, and guest researchers/collaborators during normal working hours (Monday through Friday from 7:00 A.M. to 7:00 P.M.). The facility is closed all other hours including weekends and Federal holidays. Permanent government employees and some contractor personnel are permitted facility access during closed hours via the facility's main gate.

The main gate is guarded by NIST Physical Security personnel and is equipped with a pass-reading system to log out-of-hours entry and exit times with the respective badge identifier. Other personnel are permitted out-of-hours access only with notification by sponsor or supervisor to the Physical Security Office. There are several cameras located at high points throughout the campus to monitor parking lots and gate activity. Physical Security personnel routinely check offices and laboratories to ensure doors are locked when not occupied. All NIST personnel are required to wear their NIST-assigned badge at all times on campus.

The CAMS development environment currently resides on a Unix server maintained by the Information Technology Lab (ITL) division of NIST. The CAMS production environment resides on a separate Unix server also maintained by ITL. Individual Implementation Team members gain access to the development and production machines via a login application using dynamic passwords. Once on the server, individuals must also pass through another layer of password encryption at the database instance level. Team members are granted access to the financial data in accordance with NIST policy and based on roles, duties, and responsibilities within the CAMS Implementation team. Banners are presented at the time of login warning the user he or she is entering a Federal government secure area and should only be used for official government business.

Users are automatically logged off the system after two hours of inactivity. Specific details of the technical architecture can be obtained as needed from the Technical Support team regarding the network environment at NIST supporting the financial processes. The development environments are backed up at least once a week, and production environment is backed up each night. All production backups are copied to 8mm tape and stored off-site weekly as a portion of the disaster recovery plan.

All team members also use a shared network drive mapped to the N: (Durango) drive residing on the local area network (LAN). This network drive serves as a repository for NIST CAMS Implementation project data. Project documentation and deliverables (except for those containing sensitive material) are stored on the shared LAN drive. All CAMS servers are behind NIST firewalls and are not currently accessible from outside the LAN network. The LAN is backed up incrementally each night.

9.7.4   Roles and Responsibilities
The following section contains information on roles and responsibilities associated with implementing configuration Management at the NIST CAMS Implementation project. Reference the detailed Project Plan for a comprehensive description of project roles and responsibilities. The roles and responsibilities listed below are specific to CM activities.

9.7.4.1.1   Project Manager
  • Review and approve the CM Plan

  • Follow the CM processes and procedures outlined in this plan

  • Ensure the definition and maintenance of all development processes and standards, including CM
9.7.4.1.2   CM Manager
Plan CM
  • Identify configuration items (CIs) to be managed by the CM function

  • Create, manage, maintain, and communicate the CM Plan and any CM standards and procedures to all stakeholders

  • Ensure that all project team members involved in CM receive training on their roles and in how to perform their activities and how use CM tools

  • Ensure that any updates to the CM Plan are communicated to appropriate project team members

  • Establish project schedule for CM activities with Project Manager
Track and Report on CM Status/Audits
  • Ensure that periodic CM audits are conducted to ensure that obsolete code and tables are archived appropriately and that CM database migration procedures and change requests and approval procedures are effective. Audits will be conducted a minimum of twice per year, with archiving audits performed annually.

  • Ensure that monthly CM Plan updates are conducted at NIST CAMS Implementation

  • Ensure that the integrity of all Activity Requests (AR) is maintained by monitoring status of all CIs and tracking problem reports associated with them (Note: ARs are requests for coding changes to be made to the CAMS software. The NIST CAMS Implementation team is not responsible for these changes or the method in which they are made. These changes are made by the CAMS Support Center (CSC). The NIST CAMS Implementation team merely tracks the status of these requests.)

  • Ensure CM activities are carried out as planned

  • Track, report, and communicate CM status to the Project Manager
Maintain Local Area Network (LAN)
  • Create and manage the directory and file structure, including security, residing on the NIST CAMS Implementation LAN

  • Ensure that project team members have the appropriate access to the LAN

Maintain the CM Plan

  • Follow the CM processes and procedures outlined in this pla
  • n
  • Respond to requests for status regarding CM activities from managers

  • Update configuration items as necessary

  • Create configuration requests as necessary
9.7.4.1.3   CM Team
  • Assist CM Manager in establishing policies and procedures for CM process

  • Make updates to CM Plan, as appropriate

9.7.4.1.4   Help Desk

  • Receive Action Requests (AR's) from NIST CAMS Implementation Team Members

  • Obtain approval for AR's before submission to the CSC

  • Coordinate, and track Action Requests (AR's) between the NIST CAMS Implementation Team and the CSC.
9.7.5   CM Process Flow
9.7.5.1.1   Develop Change Control Process
During the Develop Change Control Process step, NIST CAMS Implementation will develop a process for modifying the configuration items that have been placed in CM. This process will apply to both software and documentation. This change control process will outline the process used to request, evaluate, approve or disapprove, and implement changes to baselined configuration items. This process will ensure that changes to the configuration items are authorized and are performed in an orderly and appropriate sequence.

9.7.5.1.2   Maintaining CM Plan
During the Maintaining CM Plan step, the NIST CAMS Implementation team will update and document the team's CM plan. There are two separate and distinct sets of guidelines, one for software CM and one for documentation CM. Both are included in the final CM plan. These policies do not cover pre-existing documents or software versions, except where explicitly noted elsewhere within this document.

9.7.5.1.3   Communicate CM Plan
The NIST CAMS Implementation team will communicate the CM plan to its members utilizing both written documentation and a brief training/overview session where the written documentation will be reviewed. This session will be followed by a question and answer period.

9.7.6   Document CM Process
The Document CM Plan will apply to any document that is classified as a team or project deliverable, any document that will be distributed outside of the immediate NIST CAMS Implementation team, and any internal policy and procedure document. Other documents may also be subject to this process as determined by the author or team.

This policy will only be effective for documents created after the implementation of the CM Plan. Pre-existing documents will be exempt from these rules as long as they remain unedited. Any documents that are edited after this policy is implemented shall be revised to comply with this policy. In these cases, the author/editor will make an educated guess as to the version/revision number and will begin version numbering at that point. See Section 5.1.1 for more information on naming and numbering conventions.

9.7.7   Versioning Policy
All documents will follow a standard versioning convention that will include standards for naming and numbering documents and their versions.

9.7.7.1.1   Naming Conventions
Documents will be named in the following format:

"NIST CAMS Implementation_<document title>_ VV.XX_ FINAL"

  • <document title> equals the actual name of the document.

  • V equals the version number (leading zeros should be dropped from this portion)

  • XX equals the revision number.

The document title will be left to the discretion of the author. Use of spaces is encouraged for readability. However, do not use underscores within the document title portion of the name. Underscores are reserved for denoting the separation between sections of the document name.

Numbering will begin at 1.00 for a new document and will increment by one each time a change is made to either the version or revision portion of the number. When the version number (VV) changes, the revision number (RR) will be reset to zeros. (i.e.: Version 4.13 would become version 5.00 upon a version change.)

Drafts will contain the word “DRAFT” at the end of the version number. Final (approved) documents will contain the word “FINAL” at the end of the version number. The version number itself will not change when a document moves from draft status to final status. (i.e.: 3.02_DRAFT would become 3.02_FINAL upon approval.)

Version changes can and must occur within the editing cycle of a document, even before a version is accepted as a final document. In other words, if a new document is created as version 1.00 and goes through the review process, any changes made as a result of that process will be saved as a new version: 1.01.

For uniformity and readability, underscores will be used between each section of the name.

9.7.7.1.2   Version Definitions
The Version Number (VV) will reflect changes made to an existing final document.

The Revision Number (RR) will reflect changes made during the editing cycle as a document goes through the editing/review process before being signed off on and finalized.

9.7.8   Style/Format/Layout Policy
All decisions regarding style, format, and layout within an individual document will be left to the discretion of the author based on the intended audience, and subject to feedback obtained during the document review process. As a result, style, format, and layout may vary between documents, however these elements will remain consistent throughout the same document.

9.7.8.1.1   Use of Cover Pages
The decision to use (or not use) a cover page for a document will be left to the discretion of the author. However, if a cover page is used, it shall resemble the basic layout of the cover page shown in Appendix A. Please refer to this appendix for a visual representation of the information described below.

The cover page will include the following items:

  • The words “Department of Commerce” centered on the page, with the words “NIST CAMS Implementation” directly below, and in a font appropriate with the rest of the document and in a large font size.

  • The title of the document, bolded, all capitals, and centered on the page below the information listed in the first bullet. The title shall be in the same font and font size as the information listed in the first bullet.

  • The document version number and version date on the bottom of the page, right justified, and in the same font and font size as the text of the document.
    The cover page may also include (as appropriate):
    • A CAMS logo
    • A NIST logo
    • A U.S. Department of Commerce logo
    • Additional information the author deems appropriate and necessary
9.7.9   Review and Acceptance Policy
All documents/changes that are subject to the CM plan will go through a review process in the following order:
  • Peer

  • Team lead

  • Government and Accenture project managers (if deemed appropriate)

  • Major stakeholders (if deemed appropriate)

Signoff will be obtained at each step of the review process. This signoff will be recorded in a standardized approval block, which will be added to each document. A copy of this block can be found in Appendix B of this document. This block contains space for signoff and dating at each step of the review process. If a cover page is being used on the document, this block will be added to the second page, directly behind the cover page. If no cover page is being used, then this block will be added on its own page at the end of the document.

9.7.10   Change Control Policy
9.7.10.1.1   Tracking Changes
All documents will contain a change control block that will track the author, date, description, and version number of all changes made to the document. Each time a document is opened for editing and a new version/revision results, it will be recorded in the change control block. A copy of this block can be found in Appendix B of this document.

When a new document is created, the Document Change Log from Appendix B will be copied into the new document. If a cover page is being used on the document, this block will be added to the second page, directly behind the cover page. If no cover page is being used, then this block will be added on its own page at the end of the document. The block title, the block itself, and the instructions below it should all be copied to the new document. Instructions are provided for adding new rows as edits occur throughout the life of the document.

9.7.10.1.3   Change Control
This portion of the Change Control Policy will be applied when making changes to existing documents with multiple owners. Disregard this section for documents with a single owner. (i.e.:, Only one team member edits the document.)

Please note that for the rest of this section, the word “team” will be defined as the group of users associated with the editing or use of a given document. This may be a sub-team within the NIST CAMS Implementation Team, the NIST CAMS Implementation Team as a whole, or a variation.

To allow multiple team members to edit different sections of the same document simultaneously, the following is proposed:

  • When an existing document is to be edited, the editor will send an e-mail to the team advising them that the document is being edited and that no one else should make changes to the document until further notice.

  • A working copy will be saved to the user’s desktop. All changes will be made to this working copy. This working copy will be used until editing is complete.

  • Once the editing is complete and the new document has gone through the review process as detailed in Section 4, the new version will replace the old version in the appropriate location and the old version will be saved in an archive folder for past versions. These folders will be maintained at the team level. At no time shall an older version be overwritten or discarded.

  • An e-mail will be sent to the entire NIST CAMS Implementation team, as well as any other users, advising them that a new accepted and finalized version of the document has been placed on the LAN.

9.7.11   Change Control Communication Policy
As discussed in Section 5.4, e-mails will be sent by the author/editor of a document when:

  • A document is “signed out” to be edited.

  • A document is returned from editing and placed back into production.

  • A new document is placed into production.
9.7.12   Document Saving Policy
Documents will be saved in the appropriate area of the CAMS folder.

9.7.13   Document Archiving Policy
When a document is updated, the old version will be saved to an “archive folder.” To maintain consistency throughout the NIST CAMS Implementation team, in all cases the archive folder will be titled “Archived Documents”. The archive folder will reside as a sub-folder alongside the current documents. For example, if a sub-team stores all of their documents in a folder titled “Documents”, then the archive folder would be a sub-folder called “Archived Documents” within the “Documents” folder. This process will be maintained at the sub-team or team level as appropriate.

The CAMS Implementation Team will rely on existing processes in place whereby ITL performs nightly backups of the server for additional archiving of documents.

After 9 months, back versions of documents will be zipped using WinZip or equivalent software. These zip files will be maintained in the appropriate “Archived Documents” folder. The purpose of zipping will be to reduce impact to server space caused by saving all back copies of all documents.

9.7.14   Document Recovery Policy
In the event of server failure, file corruption, or data loss, the CAMS Implementation Team will rely on existing processes in place whereby ITL performs nightly backups of the server for recovery of documents. Lost documents/files will be recovered from the previous day’s backup.

9.7.15   Software CM Process
9.7.15.1.1   Overview The purpose of Software CM is to establish policies and procedures for the management of the associated software, databases, and database contents, thereby ensuring the highest degree of consistency and security. The five areas that will be addressed in this plan are:
  • Software Version Management

  • Data Management

  • Instance Management

  • Database Management

  • Liaison Activities

The basic tasks and responsibilities performed by the NIST CAMS Implementation team are:

  • Coordinating, verifying, and installing new software releases and modifications, including NIST developed or enhanced reports

  • Coordinating, verifying, altering, and adding maintenance data to the database

  • Coordinating and adding instances and object owners to the database

  • Coordinating the upkeep and creation of user accounts

9.7.15.1.2   Scope
This section of the CM Plan covers:

  • The NIST Configuration Management Team personnel required to plan, coordinate, and execute this Configuration Management Plan

  • The management, modification, and migration of all software modules associated with the CAMS character and GUI versions, and interfaces

  • The static and dynamic data contained within the databases supporting the CAMS application

  • The Oracle databases and instances contained within the CAMS application
9.7.15.1.3   Configuration Management at NIST
Configuration Management involves the management and control of the CAMS application environment including the various software versions, databases, and instances that will be maintained in support of the overall CAMS implementation.

For the NIST implementation and production support activities, changes to the software may be requested from the members of the NIST CAMS Implementation team, as well as from the client. The NIST CAMS Implementation team is not responsible for the primary development or enhancements of the software used at NIST at this time. These changes are handled by the CAMS Support Center (CSC). Further, the NIST CAMS Implementation team has no control over the CSC’s version control and configuration management processes.

9.7.15.1.4   Release Management
Release Management is a process that ensures the coherence of system objects and their relationships when the system is deployed. It covers:
  • The initial planning of features that must be included in the release

  • Verifying that all components that constitute the release have been delivered, and packaging them together

  • Ensuring compatibility between the constituent components

Product delivery can be accomplished by overlapping multiple releases. Synchronization between multiple releases must be accomplished through special Change Control procedures to ensure that module changes and enhancements are properly integrated into the CAMS system and made available to the appropriate functions in a controlled and orderly fashion.

Insufficient release management control leads to prolonged release periods and inconsistent system outputs, as incompatible components are discovered and must be replaced with the correct ones during the release process. Poor release management also increases the time required for testing and validation efforts as scripts must be re-run in order to verify expected results.

9.7.15.1.5   Software Distribution
Software Distribution is an activity that is closely related to Release Management. It includes a set of procedures and mechanisms that guarantee proper installation of the released software on the client and host equipment, ensuring that:
  • Automatic and manual procedures will deliver and install software on the proper hardware units.

  • The installation procedure will include removal of the older version of the same product if necessary.

  • In case a partial release (such as a patch) is needed, the installation procedure will verify the compatibility of the new components with the already installed release.

Well-defined software distribution procedures are always important, ensuring consistency in system functioning, reducing the effort required for regression testing, and gaining end-user confidence in the overall functioning of the system, CAMS in this case, and in the ability of the software provider to provide a quality product.

9.7.15.1.6   Version Control
Version Control is the process used to identify and manage an individual component of a software system as it changes over time. (The managed software component can be a source file, a requirements document, a design document, etc.) Version Control processes ensure that an accurate component audit trail is maintained. Typically, an audit trail contains the modification time and date, the author's name, and the reason for which the modification was carried out.

Version Control accomplishes several functions:

  • It facilitates the development process by supporting efficient restoration of an application's prior development stages.

  • It facilitates the maintenance process by leaving an accurate modification history.

  • It provides a simple way to check on the status of changes and versions.

In the NIST CAMS environment, version control can be viewed as the management of each particular module as it is upgraded, modified, or enhanced, and how that module is tracked in the system. For instance, if FM030 was modified (re-worked) four times in the past year, it would be tracked in version 1.153.1.0, 1.153.1.1, 1.153.1.2, and 1.153.1.3. When a new version is received, it is assigned the next available version number based on the version numbers already assigned and stored in this location.

9.7.15.1.7   Software Naming Conventions
CSC releases:
The release version is made up of four parts. The first and second parts are the release version, and the third and fourth parts are level one and re-works. A level one delivery indicates a severe fix and is assigned a higher priority over re-works. As fixes for the release are introduced, the third and fourth parts are incremented by 1 depending on whether it is a re-work or level one. Example - 1.154.0.0 is a new release. When a level one fix is introduced to this release, it is numbered 1.154.1.0. A re-work would be 1.154.1.1 and so forth.

NIST releases:
Each report/interface delivery has a version number that is comprised of the word “NST1” followed by .000. The last digit is incremented by 1 for each release, rework or enhancement. For example, NST1.000 is the first release and subsequent releases are numbered NST1.001, NST1.002, NST1.003, and so on. If the NST1.002 introduces rework, it will be NST1.004, .5, .6 and so forth depending on the current version.

9.7.15.1.8   NIST Software Configuration Management Team - Composition and Roles
The following matrix depicts the various technical and functional support roles associated with NIST CAMS CM implementation. These positions require a mixture of technical and functional knowledge from a variety of organizational support roles. The tasks are grouped into categories that reflect the support requirements. (i.e., CAMS DBA, CFS User Liaison, LAN Admin) The table below depicts the tasks along with an indication of the applicability of that role to each support item.

The CM Team positions are listed below with definitions:

1) CAMS Implementation Team Software Configuration Manager – A NIST position that performs the oversight function for software configuration management and for planning and implementing tasks such as database management and software release management.

2) CAMS System Administrator - Position within NIST operations performing support/maintenance functions relating to screen access, usernames/passwords and security privileges.

3) CAMS DBA - Position within NIST, performing support/maintenance functions relating to the CFS databases, and software applications.

4) Database/Instance Owners – NIST on-site positions that evaluate and approve/deny all formal requests for changes, updates, and usage requests for their respective environment

5) NIST Developers – NIST reports and Interface developers enhancing or creating character based or GUI-based programs and reports.

6) CAMS Implementation Team - NIST on-site functional and technical positions supporting CAMS/CFS users and interface with the CAMS DBAs. These roles serve as first points of contact for questions relating to CFS user navigation, setup, configuration, and as a reference point for technical problems.

7) WAN/LAN Administrator - NIST on-site positions that establish and maintain the in-house Local Area Network, and user connectivity.

8) CAMS Help Desk - NIST on-site personnel receiving and troubleshooting calls from CAMS Production users.

9) PC Support – NIST on-site positions that support the workstations and assist in problem resolutions.

9.7.16   Responsibility Codes
Responsibilities for the tasks below are organized by the CM Team position as defined above. A code has been assigned within each task to indicate primary (P), secondary (S), and review (R) level of responsibility. The tasks have also been grouped according to subject area content.

 

 

System Admin

CAMS DBA

CAMS Imp. Team

CAMS

CM Mgr.

LAN/

WAN Support

PC Support

CAMS Help

Desk

DB

Owner

Operating Environment

1) Maintain User IDs and security privileges

 

S

 

R

P

 

 

 

 

2) Coordinate hardware installation & maintenance

S

P

 

R

 

 

 

 

 

3) Maintain logon scripts for new/existing CFS users

 

P,S

 

R

 

 

R

 

 

4) Perform database backup/recovery operations

 

P,S

 

R

 

 

 

 

Software Environment

1) Maintain Oracle IDs for new or existing CFS users

P

S

 

R

 

 

 

 

 

2) Maintain security privileges for  new/modified Oracle IDS

P

S

 

R

 

 

 

 

 

3) CFS software installation & maintenance

 

P,S

 

R

 

 

 

 

 

4) Maintain CFS database instances

 

P,S

 

R

 

 

 

 

 

5) CFS online transaction monitoring (accuracy)

S

 

P

R

 

 

 

 

 

6) CFS online transaction monitoring (performance)

 

S

P

R

 

 

 

 

 

7) Batch production maintenance

 

P,S

 

R

 

 

 

 

 

8) Approve DBA request submission to CAMS_SCM Help

 

 

 

 

 

 

 

P

 

9) Approve access to specific environment

 

 

 

 

 

 

 

P

 

10) Coordinate activities taking place in specific environment

 

 

 

 

 

 

 

P

 

11) Approve Oracle users to access databases

 

 

 

 

 

 

 

P

Application Implementation

1) Establish new users as active in CFS

P

 

 

S,R

 

 

 

 

 

2) Establish/modify menu options for new/existing CFS users

P

 

R

S,R

 

 

 

 

 

3) Perform user desktop support for upgrades

P

 

 

R

S

S

 

 

Help Desk

1) Perform liaison role for technical issue resolution between CFS users and systems support

 

 

S

 

 

 

S

 

 

2) Perform liaison role for functional issue resolution between CFS users and systems support

 

 

S

 

 

 

S

 

 

3) Assist CFS users with system navigational questions

 

 

S

 

 

 

S

 

 

4) Assist CFS users with system connectivity problems

 

 

S

 

S,R

 

R

 

Network

1) Installation of peripherals (workstations & printers)

 

 

 

 

R

P,S

 

 

 

2) Configuration of peripherals

 

 

 

 

R

P,S

 

 

 

3) Network support and connectivity to CFS

 

 

 

 

S,R

P

 

 


9.7.17   Software Version Control Management
This task involves managing and protecting the various software environments implemented at NIST. Inherent in these tasks is the establishment and maintenance of procedures, which will ensure that the correct relationships between software and databases are being maintained. The version control management tasks are especially important to ensure that new corrections, changes, and modifications to software are moved properly through the development, testing, and production environments.

9.7.17.1.1   Version Control Objectives
Software version control processes have been designed to achieve the following objectives:
  • Enforce software consistency in all development and testing environments

  • Facilitate the controlled and coordinated movement of modules between the staging, development/testing, and production environments

  • Ensure that version control is enforced through a standard software tracking and documentation process
9.7.17.1.2   Version Control Tasks
  • Receiving and installing CAMS software release from CSC

  • Managing software versions within each code directory

  • Migration of CAMS software through the implementation lifecycle (staging, testing/development/training, production)
9.7.17.1.3   Software Flow Process
The software flow depicted below (Section 5.2.4) is intended to serve as a visual template for the movement of CAMS modules between the life cycle stages of development, delivery, testing, and production. The topics displayed include:
  • The flow of software between each of the four life cycle stages (i.e. development, staging, test, pre-production, and production)

  • The relationship with regard to code version among instances

  • The function of each instance based on its code concepts (This will be covered in detail in the Instance Management section)

  • The logical associations for testing activities and control thereof
9.7.17.1.4   CAMS Software Migration Procedures
Within the NIST software environment there are four distinct directories containing four distinct versions of the CAMS software. The environments and the usage of each have been discussed and agreed upon by the CAMS Implementation Team, Configuration Manager, and DBA team. It is the understanding of every party teams that additional code directories would add to the risk and complexity of the software migration process. New code environments will not be created without a formal meeting and full team discussion weighing the rationale of the new environment versus the inherent risk to the migration process.

Each of these versions labeled one through four in the picture above are associated with one or more instances. The flow of the software between these three locations is called the CAMS Software Migration Process. A brief description of each of the three environments follows as well as the processes in place to organize and orchestrate software migration between the instances.

9.7.17.1.5   Software Migration Life Cycle Environments
The migration of CAMS software from the CSC into production is critical to the integrity and stability of the application. The environments and the database instances associated with that environment that are involved in this migration follow:

Playground This environment serves as a repository where interface developers conduct unit testing.

Staging Server The staging server contains all versions of code received by the system administrator from the CAMS Support Center, and interfaces and reports developed by CAMS Implementation Team. It is a central repository for all code that is forwarded to the DBA team.

Testing, Development I & II Environments The testing environment houses the version of code that is being unit and integration tested for production readiness. Reports and Interfaces flow from Playground to Staging repository to Development II for a stable unit testing to Testing for integration testing, and finally to Production.

Pre-Production Final integration testing environment before production.

Production The production environment contains the latest version of the CAMS Software code that has been tested and approved for migration to production by the CAMS Integration Team. The training environment is currently being used for CRP.

Post-Production The post-production environment is a mirror copy of production - same version of code and database data – in any given 24-hour period.

Conversion, Migration, Training The migration environment exists to support GUI AR testing.

Conversion, Migration and Training environments are currently not in the direct software flow.

9.7.17.1.6   Software Migration Life Cycle Process
To ensure that the production version of the software is stable and capable of supporting all user activities without any issues, the CAMS Implementation team has instituted a structured process. A step-by-step look at this process follows.

1. Release code from the CSC –The CSC is sends each code to the CAMS System Administrator. The System Administrator is responsible for performing an initial analysis of the impact this release will have on production.

2. In-House Developed Reports and Interfaces – The Database Owner sends each report/Interface developed or enhanced by the NIST Implementation Team to the CAMS SCM team. Please refer to appendix C for a detailed checklist on Nist reports.

3. Inform Configuration Management Team of software release - The System Administrator forwards the details of the software release to the Configuration Management Manager for her review via a Remedy request. The request is subsequently sent to the CM team to review the release and perform their analysis of the production impact of this release.

4. Migrate new code release to the Staging repository - After the members of the Configuration Management team have reviewed the release specifications, the DBA will copy this new software release to the Staging server (as defined above).

5. Update release management spreadsheet - The CAMS Implementation team keeps a detailed spreadsheet of each release. This spreadsheet is used to assist in the creation of migration and integration plans. In addition to the CAMS Implementation team’s spreadsheet, the DBA team keeps a record of each version of code as it is applied to the environment.

6. Migrate all versions and releases up to a pre-selected point to the Testing/Development Environment - At a given point, the CAMS Implementation Team makes a decision to migrate a version of code and all predecessors to the testing environment. This decision can be based on several factors and they include, but are not limited to the delivery of core functionality, the repair of a severity one activity request or the scheduled release of production software. When this decision is made, the database administrator migrates the selected code to the Testing/Development Environment (as defined above).

7. Perform Integration/Regression testing - The Integration Testing team performs a detailed integration/regression-testing cycle. This cycle focuses on sport checking each code change applied to the environment in addition to regression testing some base functionality currently used in production.

8. Document the results of Integration/Regression testing - Upon the completion of the integration/regression testing effort, the Testing team will document all of their findings and the results of each test. In addition to these results, this document also contains the inherent risks, if there are any, with the migration of this version of code to production.

9. Make go/no go decision - The CAMS Implementation Team is responsible for taking all information into consideration and determining the best course of action with this software release. Several factors will be considered in this decision. Some of these factors are the risks uncovered in Integration Testing, the potential impact on the production environment and the benefits that could be realized with the migration. If the decision is not to migrate the code, a new plan must be created, a new code version identified and the team will return to step five in this process.

10. Create a production migration plan - After the implementation team reaches the go decision, the team will work with the database administrator to create a plan to migrate this code to production. This plan is critical, as system downtime will be encountered during the migration effort.

11. Point tested code to Training Instance - Once the go decision has been made, the database administrators will point the tested code to the training database.

12. Conduct any training of end-users - The CAMS Implementation team will conduct any training that must be completed before the new code can be migrated to production. This is critical because the users will find different functionality and performance when they return to work on a Monday. This training will assist in a seamless transition between the two versions.

13. Perform Database and Code Directory backup - Before the migration effort can take place the database administrators will perform a full production database backup as well as a backup of the production code directory. This will be used to rollback to the existing production code and database structure in the event that something goes wrong during the migration effort.

14. Refresh Pre-Production Database – The database administrator at the request of the system administrator will refresh the pre production instance using the most recent production backup. In most cases that backup will be from the close of the previous business day.

15. Migrate all database changes to the Pre-Production Database - The database administrators will apply all database changes to the pre prod database. The pre prod database will be used to test the migration of the application code so it is critical that the pre prod database is up to date with the migrated code version.

16. Perform selected tests in the Pre-Production Environment - The CAMS Implementation Team will perform a series of pre-selected scripts in the pre production environment. Since the pre production code is the same code version as production, this test will confirm the success of the migration effort. In addition the database and the data contained within it is also as a direct copy of production. This fact further validates this test as a true test of the production migration.

17. Migrates tested code to Production - Assuming all pre-prod testing is successful, the database administrators, with the support of the CAMS Implementation team will migrate the tested code to production. If no errors are encountered the DBAs will alert the implementation team that the code release has been completed successfully.

18. Inform end-users - It is important to inform the end users that changes have been made to the production version of the code. The sharing of this knowledge will assist the implementation team in two ways. First the end users will not be surprised with new or enhanced functionality. And more importantly, the end users will be able to determine if any functionality is incorrect or performing poorly.

19. Copy code/data to Post-Production – Post–prod instance is updated with the latest code within 24 hours of production implementation. In addition, production data is also copied into the environment.

9.7.17.1.7   NIST Reports Migration Process
When a report is developed or an existing report is enhanced, the following migration process takes place to move the report to the Production environment:

Note: All requests to SCM and DBA teams are made via Remedy Action Request System.

9.7.18   Code and Delivery Documents
9.7.18.1.1   Attachment A: NIST Report Version Delivery Spreadsheet
9.7.18.1.2   Attachment B: NIST Report Code Review Checklist

NIST Report Code Review Checklist

9.7.18.1.3   Attachment C: NIST Report Exit Criteria Checklist

Acceptance Criteria Form for a code review

Report Submission Form

Send Website comments to:
DCFO/CAMS Webmaster

CAMS Comments

Back to CAMS PMP Home Page
Back to CAMS Home Page

Date Created: April 25, 2003
Last Update: June 25, 2003 (format only)