Ministry Software Configuration Management Policies and Procedure for Source Material Management



Similar documents
Application Development Environment. Table of Contents

How To Set Up An Outsourcing Center In China

PROJECTIONS SUITE. Database Setup Utility (and Prerequisites) Installation and General Instructions. v0.9 draft prepared by David Weinstein

QlikView 11 Source Control Walkthrough

SourceAnywhere Service Configurator can be launched from Start -> All Programs -> Dynamsoft SourceAnywhere Server.

Quality Assurance. Ministry of Community Development and Ministry of Tourism, Culture and the Arts

Web Pages. Static Web Pages SHTML

Source Control Guide: Git

TANDBERG MANAGEMENT SUITE 10.0

Administering Team Foundation Server 2013

Source Control and Team-Based Design in System Generator Author: Douang Phanthavong

IKAN ALM and Collabnet TeamForge

WORKING IN TEAMS WITH CASECOMPLETE AND MICROSOFT VISUAL SOURCE SAFE. Contents

CatDV Pro Workgroup Serve r

One solution for all your Source Configuration Management Needs

Manage Software Development in LabVIEW with Professional Tools

P4VS User Guide

Jazz Source Control Best Practices

Zoom Plug-ins for Adobe

Microsoft s Team Foundation Server (TFS) Canute Magalhaes Richland County (IT) SYSTEMS ANALYST / PROJECT LEAD 1

Automatic promotion and versioning with Oracle Data Integrator 12c

Software Configuration Management Plan

STATISTICA VERSION 11 CONCURRENT NETWORK LICENSE WITH BORROWING INSTALLATION INSTRUCTIONS

Telelogic DASHBOARD Installation Guide Release 3.6

Developing Software in a Private workspace PM PMS

Creating a Complete Backup of Shelby v5 Data

ANDROID DEVELOPER RESUME USA

How to Back Up and Restore an ACT! Database Answer ID 19211

Meister Going Beyond Maven

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

2667A - Introduction to Programming

Introduction to Source Control ---

The Importance of Source Code Control in Custom Systems Integration Projects

Best Practices for Implementing Autodesk Vault

Effective Team Development Using Microsoft Visual Studio Team System

An introduction to the benefits of Application Lifecycle Management

Security Development Tool for Microsoft Dynamics AX 2012 WHITEPAPER

General TFS Guidelines V2.1.2

ACS Backup and Restore

About database backups

National Fire Incident Reporting System (NFIRS 5.0) NFIRS Data Entry/Validation Tool Users Guide

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

How To Restore Your Data On A Backup By Mozy (Windows) On A Pc Or Macbook Or Macintosh (Windows 2) On Your Computer Or Mac) On An Pc Or Ipad (Windows 3) On Pc Or Pc Or Micro

ElectricCommander. Technical Notes MS Visual Studio Add-in Integration version version 3.5 or higher. October 2010

Chapter 4. Learning Objectives. Learning Objectives. Building an E-commerce Web Site. Building an E-commerce Web Site: A Systematic Approach

BlackBerry Enterprise Server for Microsoft Exchange Version: 5.0 Service Pack: 2. Feature and Technical Overview

Considerations for Mobile Application Development

How To Back Up Your Pplsk Data On A Pc Or Mac Or Mac With A Backup Utility (For A Premium) On A Computer Or Mac (For Free) On Your Pc Or Ipad Or Mac On A Mac Or Pc Or

Installation Instructions Release Version 15.0 January 30 th, 2011

Uninstallation Guide Funding Information System (FIS)

LOTUS to SharePoint Migration Services

PTC Integrity Eclipse and IBM Rational Development Platform Guide

Working with a Version Control System

HP OpenView AssetCenter

Content. Development Tools 2(63)

Workshare Professional Secure Document Compliance for Microsoft Office 4.5. Workshare Professional Release Notes

CA Repository for Distributed. Systems r2.3. Benefits. Overview. The CA Advantage

HydroDesktop Overview

Porting Legacy Windows Applications to the Server and Web

HTML5. Turn this page to see Quick Guide of CTTC

SOFTWARE DEVELOPMENT BASICS SED

PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone

Net Developer Role Description Responsibilities Qualifications

High Availability Option for Windows Clusters Detailed Design Specification

Surround SCM. User Guide Version

Software Distribution Reference

Installing Cobra 4.7

TestDirector. Microsoft Visual SourceSafe Version Control Add-in Guide Version 8.0

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013

Cox Business Premium Online Backup USER'S GUIDE. Cox Business VERSION 1.0

How To Backup Your Computer With A Remote Drive Client On A Pc Or Macbook Or Macintosh (For Macintosh) On A Macbook (For Pc Or Ipa) On An Uniden (For Ipa Or Mac Macbook) On

We ( have extensive experience in enterprise and system architectures, system engineering, project management, and

Successfully managing geographically distributed development

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management

Vector Asset Management User Manual

Software Delivery Integration and Source Code Management. for Suppliers

EMC NetWorker Module for Microsoft for Windows Bare Metal Recovery Solution

EMC Documentum Composer

MIGS Payment Client Installation Guide. EGate User Manual

A b o u t F l o r a S o f t

Project Title: Judicial Branch Enterprise Document Management System RFP Number: FIN122210CK Appendix D Technical Features List

Microsoft Training and Certification Guide. Current as of December 31, 2013

Getting Started with the Ed-Fi ODS and Ed-Fi ODS API

Cabarrus County SharePoint Governance

Microsoft Dynamics NAV 2013 R2 Release Notes Follow-up

How To Install Caarcserve Backup Patch Manager (Carcserver) On A Pc Or Mac Or Mac (Or Mac)

Synthetic Monitoring Scripting Framework. User Guide

Sage 100 ERP. ebusiness Manager Installation Guide

CA DLP. Stored Data Integration Guide. Release rd Edition

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

SEER Enterprise Shared Database Administrator s Guide

CA Harvest Software Change Manager

Exchange Mailbox Protection Whitepaper

Backing up and restoring HP Systems Insight Manager 6.0 or greater data files in a Windows environment

Revision control systems (RCS) and

VB.NET - WEB PROGRAMMING

Wise Package Studio 5.5 Feature Grid

Transcription:

Services and Ministry of Ministry Software Configuration Date: March 27, 2007 Prepared By: David Ell Project: CAWS Standards Documentation Harvest Package: RFC_000452 Harvest Version: 14

Table of Contents Revision History...2 Document Approval...2 1.0 Overview...3 1.1 Outline...3 1.2 Background...3 1.3 In Scope...3 1.4 Out of Scope...3 1.5 Assumptions...3 2.0 Procedures...4 2.1 All source materials are to be stored in the Ministry Harvest Repository...4 2.1.1 Reason For This Policy...4 2.1.2 Procedure...4 2.1.2.1 All File Types...4 2.1.2.2 Visual Studio 6, Visual Studio.NET 2002 and 2003...5 2.1.2.3 All non-visual Studio Development...6 2.2 All source material changes are to be tracked through the Harvest Repository....7 2.2.1 Reason For This Policy...7 2.2.2 Procedure...7 2.2.2.1 Visual Studio 6, Visual Studio.NET 2002 and 2003, Java, ASP, JSP, VBScript, nonbinary FoxPro files, and JavaScript...7 2.2.2.2 Microsoft Access, Lotus Approach, and binary FoxPro files...7 2.2.2.3 Other Tools and File Types...8 2.3 All source materials are to be stored in a recoverable environment....8 2.3.1 Reason For This Policy...8 2.3.2 Procedure...8 2.4 All coding is to be conducted in a non-concurrent manner....8 2.4.1 Reason For This Policy...8 2.4.2 Procedure...8 2.5 All Applications should display both Release number and Build number....9 2.5.1 Reason For This Policy...9 2.5.2 Procedure...9 Appendix A Release and Build Numbers...10 Windows Forms-based Applications:...10 Web-based Applications (BC Government Portal Look and Feel):...11 Web-based Applications (Non-Portal Look and Feel):...12 Appendix B The SCC Switch Utility...13 Appendix C Glossary...13 Last Modified: 3/27/2007 1 of 13

Revision History Date Harvest Version Section Description Author 04-APR-2004 0 All Initial Draft David Ell 13-JUL-2004 1 All Second Draft integrating DWS group feedback David Ell 13-JUL-2004 2 TP and TOC Update Title Page and TOC David Ell 22-JUL-2004 3 All Third Draft integrating DWS group feedback David Ell 22-JUL-2004 4 All Fourth Draft integrating DWS group feedback David Ell 22-JUL-2004 5 2.1.2.1 Add language about testing David Ell 28-JUL-2004 6 All Revised with Ted Dixon s changes David Ell 30-JUL-2004 7 All Fifth Draft integrating DWS group feedback David Ell 04-AUG-2004 8 All Sixth (and Final) Draft David Ell 17-AUG-2004 9 2.3.1 Fixed typographical error David Ell 04-OCT-2004 10 2.2.2.2 Amended policy David Ell 18-OCT-2004 11 Approver Updated Approver and Title David Ell 18-OCT-2004 12 Footers Changed modified date stamp {SAVEDATE} Added Document Properties 27-MAR-2007 14 changed Ministry of Community K Warnes Kwarnes Document Approval Signature Date Dave Kent Print Name Manager, Development and Web Services Title Last Modified: 3/27/2007 2 of 13

1.0 Overview 1.1 Outline This document is being compiled to outline the policies and procedures to be used by developers who are using the Ministry s Harvest Software Configuration (SCM) repository to manage project source materials. For the purposes of this document, source material is defined as any/all source code and/or dependency files which are used during compilation and/or execution of an application. Within the policies stated below there are sections, by language/compiler, which define how to manage source materials with the Harvest SCM repository. 1.2 Background These policies have arisen out of the project to define a software configuration management methodology for the Ministry. These policies were created to inform developers of what the Ministry considers to be appropriate source code management techniques, using the Harvest SCM repository. 1.3 In Scope The following topics are in scope for this document: Appropriate level of repository interaction Source code management Application development policy for source material management Source materials that are being managed using SCM 1.4 Out of Scope The following topics are not in scope for this document: The Ministry s Software Configuration methodology Database component management Coding standards Architecture standards Source materials that are NOT being managed using SCM 1.5 Assumptions This document assumes a reader has already received training on the methodology as well as on the use of the Harvest change management tool. It is also assumed that the reader has the Harvest Workbench installed on their desktop. If you have not received Harvest training, or do not have the Harvest Workbench installed, contact the Ministry Business Analyst for the project. Last Modified: 3/27/2007 3 of 13

2.0 Procedures 2.1 All source materials are to be stored in the Ministry Harvest Repository. 2.1.1 Reason For This Policy This policy has been created to ensure that the Ministry, as the owner of project deliverables, possesses all project deliverables during the entire Software Development Life Cycle (SDLC). This will allow for more efficient project transitions, as well as allowing the Ministry to perform Quality Assurance (QA) checks of applications during the development process. 2.1.2 Procedure Use the methods described in the sections below to Check In/Out code to/from the Harvest Repository. 2.1.2.1 All File Types This section describes procedures which apply to all source material file types that developers will be checking in to the Harvest repository. All non-standard file extensions are to be reported to the Harvest Administrator and designated as either binary or text format. This information is required by the Harvest tool in order to allow the most efficient repository compression. All referenced dependency files (.dll,.txt,.csv,.ocx, etc ) are to be checked into the Harvest Repository. All test scripts and/or data conversion scripts are to be checked into the Harvest Repository. Files are to exist in only one directory within the repository. There must NOT be multiple copies of a file, stored in different directories. As a best practice, files should be stored using the structure below. Exceptions can be made where adoption of this Repository structure is not practical. If required, sub-directories can be made under the Code folder to mimic the implementation environment. Figure 1: The Source directory and its default sub-structure Code: Contains all source code files (.frm,.frx,.java,.vb, etc ) which are used in the compilation of a system. Config: Contains all configuration files which are referenced by a system. (i.e..ini or.xml files) Dependency: Contains any external binaries (i.e..dll,.ocx, etc ) which are referenced by a system. Resource: Contains any data files (.txt,.csv,.mdb,.dbf) which are used as a resource by a system. See Section 2.2 for additional procedures regarding.dbf and.mdb files. Last Modified: 3/27/2007 4 of 13

2.1.2.2 Visual Studio 6, Visual Studio.NET 2002 and 2003 This section describes procedures regarding the checking in and out of Visual Studio files. Code files are to be Checked In/Out through the IDE only. For information on Check In/Out of non-code files, see Section 2.1.2.3 for instructions on using the Windows Explorer-integrated components of the Harvest Workbench. Once the Harvest client has been installed on a machine which has Visual Studio installed, it will automatically integrate into the IDE. Figure 2: The Check Out menu Figure 3: The Check In menu Warning: The Harvest client will over-write any active SourceSafe connections established on a system. If you require both Harvest and SourceSafe access, see Appendix B for further information. Last Modified: 3/27/2007 5 of 13

2.1.2.3 All non-visual Studio Development For all non-visual Studio files, the following procedures should be followed: Once the Harvest client has been installed, it will integrate with Windows Explorer. This will allow you to Check In/Out your files as well as choosing which RFC/Package to work against. Figure 4: Windows Explorer integration If you are checking in a file which is part of the compiled code for an application, de-select the Delete file on check-in option (refer to Figure 5 below). If this option is not de-selected, the application may no longer compile due to missing files. The file will then need to be refreshed from the Workbench, using a Check Out for Browse. De-select Figure 5: Removing deletion option Last Modified: 3/27/2007 6 of 13

Warning 1: The Harvest client will over-write any active SourceSafe connections established on a system. If you require both Harvest and SourceSafe access, see Appendix B for further information. Warning 2: The menus illustrated in Figure 4 will only appear if you have performed a custom installation of the Harvest Workbench (as per the Ministry s installation instructions). If this menu does not appear, you will need to uninstall and reinstall the Workbench. 2.2 All source material changes are to be tracked through the Harvest Repository. 2.2.1 Reason For This Policy This policy allows for a very fine level of change management to be achieved. This will give programmers (as well as internal QA staff) a very explicit description of what code has been modified in order to complete a Request For Change (RFC). This also allows for packages to be removed from a release with relative ease, as well as simplifying roll-back procedures. 2.2.2 Procedure All Check In/Out processes must be conducted in reference to a RFC or Deficiency package within Harvest. If no RFC or Deficiency packages have been created, consult with the project BA to have them created. Use the guidelines described in the sections below to ensure that your changes are tracked to an appropriate level. 2.2.2.1 Visual Studio 6, Visual Studio.NET 2002 and 2003, Java, ASP, JSP, VBScript, non-binary FoxPro files, and JavaScript These procedures will apply to all text-based file types: At the beginning of the development process for a RFC, Check Out the appropriate files, modify them as required for a single RFC, and then check the files back into the Harvest repository. Each file should be checked in once development and unit testing (of a given RFC) is complete. This will ensure that only functional modules exist within the Repository. 2.2.2.2 Microsoft Access, Lotus Approach, and binary FoxPro files These procedures will apply to all binary file types: All MS Access databases are to be compacted prior to being checked in. Files of a binary format are to be checked in only at one point in the Software Development Lifecycle. The file is to be checked-in at the start of the delivery process within the Integrated System Testing state. NOTE: Additional Check-In/Out cycles may be required; however, this bestpractice will help to keep storage requirements to a minimum. This is due to the fact that the large binary files created by these applications are not modularized, and thus require repeated storage of unchanged material. Last Modified: 3/27/2007 7 of 13

All MS Access and Lotus Approach data tables are to have their data purged, prior to being checked in to the Harvest repository. This will allow for documentation of the structure, without the storage burden of the data itself. Lookup (or reference) tables should be stored with their records intact. Some systems may have specific test data which may be useful to keep and reuse. In this case a full system check in is acceptable. 2.2.2.3 Other Tools and File Types Before beginning with development, consult with the Harvest Administrator to discover what frequency of Check In/Out is appropriate. 2.3 All source materials are to be stored in a recoverable environment. 2.3.1 Reason For This Policy While the Ministry is providing a backed-up repository for completed changes, it is still the responsibility of the developer to back-up code which is currently under development. This will reduce time lost due to catastrophic system failure. 2.3.2 Procedure All source materials, which are currently checked out of the Harvest repository are to be backed-up nightly. Source materials should NOT be stored on the C: drive of a developer s computer. For Windows Forms.NET development, since the source files under development must be on the developer s C: drive, it is the responsibility of the developer to ensure that files are transferred to a backed-up location (such as a network drive) on a nightly basis. 2.4 All coding is to be conducted in a non-concurrent manner. 2.4.1 Reason For This Policy This policy has been created to ensure that developers do not get into situations where they are attempting to merge the work of multiple developers. Merging multiple version branches does not lead to a high-quality final product and is not an efficient development methodology. merging can also put the code base at risk (i.e. previously resolved issues may reemerge in subsequent releases). 2.4.2 Procedure Only a single developer is allowed to work on a given file at a time. The Harvest repository will only allow a single check-out of a file to assist with the enforcement of this policy. If two developers wish to work on the same module, only one of them is to have the file checkedout for update at any given time. It is recommended that such files be further modularized to assist in eliminating conflicts. Last Modified: 3/27/2007 8 of 13

2.5 All Applications should display both Release number and Build number. 2.5.1 Reason For This Policy Applications should display their Release and Build numbers to provide an obvious determination between different releases of an application. See Appendix C Glossary for further definitions of Release and Build numbers. 2.5.2 Procedure On the interface of all applications it should be possible to display both the Release and Build numbers of an application. This is commonly done through the Help...About box or Splash Screen of a Windows Forms-based application (i.e. MS Access, VB6, VB.NET, etc ), or in a discrete location on the interface of a Web-based application. An application s implementation is uniquely identified by the combination of the Release and Build numbers (i.e. R01.00.00, Build 5). The Release number should be a value that is stored in the application s database. If there is no database, or the database is proprietary, then the Build number should be stored in a shared constant in the application code. The Build number is either compiler-provided, or hard-coded using a shared constant (eg. gconstbuild_number), to allow for distinction between application builds. See Appendix A for examples. Last Modified: 3/27/2007 9 of 13

Appendix A Release and Build Numbers The following are examples of placement and styles for Release and Build numbers. Windows Forms-based Applications: Release Figure 6: Example of Release and Build Numbers on a Splash Screen. Last Modified: 3/27/2007 10 of 13

Web-based Applications (BC Government Portal Look and Feel): Figure 7: Example of Release number on a BC Government Portal-style page. Note: This example is missing the Build number. The Build number should be placed immediately below the Release number Last Modified: 3/27/2007 11 of 13

Web-based Applications (Non-Portal Look and Feel): Figure 8: Example of Release number on a custom web-application page. Note: This example is missing the Build number. The Build number should be placed immediately below the Release number Last Modified: 3/27/2007 12 of 13

Appendix B The SCC Switch Utility Figure 9: The SCC Switch Utility interface The SCC Switch utility will allow you to switch source code providers on a computer. When you run the utility it will default to the opposite provider from what you are running (i.e. if you are running SourceSafe it will default to Harvest, and vice-versa). This utility is available from the Harvest Administrator; however, we will only provide best-effort support Appendix C Glossary Acronym / Term Description ASP Active Server Pages BA Business Analyst, as defined in the methodology. Build A Build of an application uniquely identifies a single successful compilation and linking of all source code. For a web-based application it is assigned by the programmer to uniquely identify implementations of source code. Harvest The Ministry standard tool for SCM IDE Integrated Development Environment (ex. Visual Studio.NET 2003) IST Integrated System Testing JSP Java Server Pages MS Microsoft QA Quality Assurance Release A unique identifier for a single iteration through the SDLC. (Eg. R01.00.00) The Release number is used to bind all project deliverables under a single identifier. RFC Request For Change (a logical unit of work) SCC Source Code Control, the Microsoft standard API for integrating with a source material management system. SCM Software Configuration SDLC Software Development Life Cycle Any source code and/or dependency files that are used during compilation and execution of an application. Version A unique identifier for a checked-out piece of source material. Files are given a Version when they are checked-out for update so that the changes made during that session can be tracked. Last Modified: 3/27/2007 13 of 13