![]() |
![]() |
![]() |
|
![]() |
SCM Project Roles Definition DocumentTable of ContentsPurposeThis document describes the roles necessary to implement a Software Configuration Management (SCM) system in a corporate development environment. It discusses these roles during three phases of implementation the SCM implementation phase, during which the SCM system infrastructure is put into place; the project implementation phase, during which a particular development project is migrated to the SCM system; and finally, the ongoing phase that begins when the SCM system is in place and one or more development projects is under SCM control.This document is written in such a fashion that, while it defines project "team members", it is really defining the roles that must exist within the project team. This may seem like an insignificant distinction, but it will be an important distinction to make when the time comes to select the project team, as it's possible that a single employee will fill multiple project roles, or a single project role may be filled by multiple employees. SCM Project TeamImplementing SCM in a development organization requires installing a variety of software, policies, and procedures. Once the SCM infrastructure is in place, each software development project within the organization must be integrated into it. Finally, with all the existing development projects under SCM control, there are ongoing SCM tasks associated with administration, training, and new development. This section discusses the roles necessary for each of these three phases: SCM implementation roles, project implementation roles, and ongoing SCM support.ManagementCorporate Information Technology management must be involved to direct the SCM implementation project, and to ensure that the system is consistent with the goals of the organization.SCM AdministratorDuring the process of putting the overall SCM system into place, the SCM administrator is essentially the "project lead", analyzing, designing, and directing the implementation of SCM system capabilities.
Systems AdministratorImplementing an SCM system requires assistance in many technical and system-related areas, including:
Database AdministratorIn a client-server database environment, a database administrator is needed to provide the following:
Development Tool SpecialistsIn a corporate development organization, there are invariably a multitude of development tools in use. The SCM administrator must ultimately become the recognized expert on each development tool's use in an SCM context. In order to obtain the degree of understanding necessary to interpret a particular tool's SCM-related requirements, SCM administrator may need to draw on the knowledge inherent amongst the development group. Therefore, it is often times necessary to assign a tool expert (from the development group) for each development tool.WebmasterThe SCM project will utilize the corporate intranet as the central location for SCM related documentation, including policies and procedures, coding standards, reporting, etc. In order to achieve this, someone in a "webmaster" role must be available to provide the following:
Project Implementation RolesThe following enumerates the roles necessary to adapt each software development project to the SCM system:SCM AdministratorThe SCM administrator will need to determine project requirements and configure version control for the project accordingly. In addition, the SCM administrator must serve as the "project manager" for the task of implementing SCM for the project, coordinating the order of the tasks and the individuals involved. The SCM administrator will also be responsible for determining resource requirements (e.g. diskspace) necessary to support individual projects.Development ManagerThe development manager supplies the SCM administrator with project-related information, identifying the developers on the project, and designating a project lead for SCM related needs. The development manager for the project must also be involved to coordinate SCM related activities with the ongoing development activities of the project, helping to ensure a smooth implementation.Project LeadThe project lead will serve as the point of contact for the SCM administrator on project-related issues, helping to determine project-specific requirements, and answering questions about development tools and environments.DevelopersOne or more developers will be required for each project to be placed under SCM control. While the project may consist of only a single developer who also fills a project lead role (or a project lead filling a developer role), the responsibilities include the following:
System AdministratorDepending on the project, and the changes it must undergo in order to be integrated into the SCM system, a system administrator may need to be involved to create or modify directories, permissions, groups, or users.Database AdministratorA database administrator may need to be involved to create or modify databases, schemas, database security, and database roles.Ongoing Support RolesWith the SCM system implemented, and one or more projects placed under SCM control, ongoing support begins. The necessary roles, and their associated responsibilities are as follows:SCM AdministratorOngoing support of the SCM system requires the following of the SCM administrator:
Systems AdministratorFrom a system administration standpoint there will always be a need to maintain system users, groups, security, login scripts, profiles, changing directory structures, and other system related issues.Database AdministratorOn an ongoing basis, a database administrator is required for the following:
Production ControlOnce a project has been placed under SCM control and releases of that project have been promoted to Production, Production Control will be responsible for installing those releases into Production environments. As a result, an individual is needed to extract releases from the SCM system and install them in production locations. This is very much a system administrator type of function, requiring sufficient security privileges to remove and install files in a production environment. In an environment where software is being developed for multiple platforms, this may require knowledge of many operating systems and tools. For example, in a Microsoft Windows environment, does a particular application get installed on a network server or on multiple client PC's? In the latter case, such an installation might be achieved with an automated tool like Systems Management Server ("pushing" the software out to the clients), or via some other means. Regardless, the production control individual must possess the capability to perform many types of installations, possibly using many types of tools.Copyright 2001 SCM Labs, Inc. All rights reserved. |