|
Commerce Administrative Management System (CAMS) Program Management Plan (PMP) 9.7 APPENDIX G - CAMS Configuration Management Plan9.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 PurposeThe 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 Approach9.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 ResponsibilitiesThe 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
Plan CM
Maintain the CM Plan
9.7.4.1.4 Help Desk
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 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 PolicyAll 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"
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 DefinitionsThe 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 PolicyAll 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:
All documents/changes that are subject to the CM plan will go through a review process in the following order:
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 Policy9.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 ControlThis 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:
9.7.11 Change Control Communication 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 PolicyIn 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:
The basic tasks and responsibilities performed by the NIST CAMS Implementation team are:
9.7.15.1.2 Scope
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 ManagementRelease Management is a process that ensures the coherence of system objects and their relationships when the system is deployed. It covers:
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 DistributionSoftware 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:
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 ControlVersion 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:
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 ConventionsCSC 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: 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. 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.
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:
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:
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 EnvironmentsThe 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 ProcessTo 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 ProcessWhen 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 Documents9.7.18.1.1 Attachment A: NIST Report Version Delivery Spreadsheet 9.7.18.1.2 Attachment B: NIST Report Code Review Checklist ![]() 9.7.18.1.3 Attachment C: NIST Report Exit Criteria Checklist ![]()
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) |