Release and Deployment
Table of Contents
  Release and Deployment Management is the United Van Lines of IT Service Management. It is their responsibility to ensure that changes get introduced into the live production environment efficiently and effectively. Release Management has no responsibility over the content of the 'release' - only in the manner in which it takes place.

Process Requires Re-writing for conformance with ITIL Version 3.

More...

Visit my web site

Introduction to Release and Deployment Management

Release and Deployment Management is a process within the Transition module of the ITIL Service Lilfecycle.

Click to whole Service livecycle

Release Management is concerned with moving and not with the content of the move.

"The release manager is like a mover responsible for moving your items from one home to another. The mover does not get involved with what should be moved or what should be thrown away. They instead implement a protocol by which you identify what should be moved and what should not. They just get your "move items" from point A to point B."

Software Release Methodology, Michael E Bays, Prentice-Hall, 1999, p.210

[To top of Page]

Release and Deployment Management

Objectives Coverage Policies Scaling Concepts Roles Measuring Processes Appendix

Objectives

The goal of the release management process is to ensure that all changes are deployed successfully into the production IT environment in the least disruptive manner. Therefore, release management is responsible for:

Critical Success Factors

[To top of Page]

Process Coverage

Scope

Release Management applies to all IT infrastructure systems and equipment. For example, any grouping of hardware, software, network, process, and procedural modifications to the live environment is managed through the release management process, ensuring a standardized and well-communicated approach to the planning, testing, and implementation of releases.

In Scope
The main components to be controlled are:

All deliverables need to be managed effectively, from development or purchasing, through customization and configuration, through testing and implementation, to operation in the live environment.

Usually Excluded
There is a close relationship between Release Management and Change Management. The boundaries between the responsibilities of Release and Change Management need to be clearly understood through the use of Operational Level Agreements defining the obligations and performance expectations involved (ie., Release and Change Boards).

The Release process considers application builds from the moment of testing completion to "release" into the production environment. Project Management up to the point of pre-production testing is covered by Application Project Management. Of course, project administration and the end-user participation will appreciably affect the success of the release. Steps done early as part of the project plan will pay dividends during the release process.

Discretionary

Relationship to Other Processes

Relationship with Change and Configuration Management processes
Most commentaries, frameworks and models treat Configuration, Change and Release Management either together [Note] or inextricably linked[Note] .

"Change management will prove to be a critical process integration point with release management, enabling the effective coordination of smaller alterations with larger releases. In fact, through 2007, many ITOGs will extend/use their enterprise change-management process for release-management functions. Because change and release management share many of the same activities (e.g., requests, risk assessment, scheduling, distribution), it is logical that releases could be viewed as top priority changes."

META Practice 2197, Release Management: The IT Operations Perspective, May 11, 2004

Area Emphasized

Change Management
Once a Change Management process has been defined this imposes restraints around the release of software and hardware products. Because all changes must now be tested and have associated back-out plans there is the need for efficiency in releasing versions. For this reason explicit policies are devised to "bundle" changes (eg. Bug/fixes, patches, etc) into packaged releases which can be put through change management as a single change. As a result "there is no danger that obsolete versions of CIs that are incorrectly assumed to be unchanged will be used within the Release, and, there is less temptation to short-circuit testing of supposedly unchanged CIs and of the interfaces from changed CIs to unchanged ones."

The CAB, as defined in the Change Management process, with advice from Release Management, is responsible for recommending the content and scheduling of Releases. Release Management is then responsible for implementing the agreed Releases. Release Management is normally represented on the CAB and is involved in establishing the organization's Release policy.

Although Release Management oversees the details of the roll out of a Change, it is under the control and authority of Change Management.

Configuration Management
Whenever new versions of software are added to the DSL, its details should be simultaneously included in the CMDB. Similarly, whenever new or changed hardware is rolled out, the CMDB should be updated. The CMDB should always contain the current status information on all authorized software and hardware and is used to ensure that only the correct components are included in a Release.

Release Management may use various services of Configuration Management during the implementation of a Release (e.g. configuration audit to ensure that the target environment is as expected). It is possible to combine these two functions with or without Change Management to form one organizational unit.

Configuration Management Database (CMDB)- Definitive Software Library (DSL)
Service Desk and Incident Management
The service desk provides efficient and quality user support and incident management. The service desk should provide support during the pilot program and immediately following full release implementation. Defect Lists and Known Errors should be made available to the Service Desk as these are a prime source of possible failures and, hence, reported incidents. If adequate forewarning is not provided users frustration will be aggravated.

Problem Management
At the end of the successful distribution and installation of a new Release, various records in the Problem Management system need updating as follows:

Problem Management is also often involved in identifying faults that will lead to Requests for Change (RFCs) and so eventually lead to new Releases.

Software from Developers and Suppliers
When software is accepted from developers or suppliers, it is placed into the DSL and registered in the CMDB. Release Management is responsible for building Releases from the DSL into the controlled test environment. When testing has successfully concluded, Release Management should distribute the Release into the live environment.

Availability Management
Availability management focuses on the availability and reliability of the live computing environment. Implementation of the release in the live environment should be managed by the availability manager in order to minimize disruptions to system availability during the pilot and full releases.

Service Continuity
Normal change, configuration and release procedures address risk mitigation from incidents causing short-term outages. However, a prolonged outage may have repercussions involving risks to the competitiveness or even survivability of the enterprise, there is a need to develop contingencies to cover these events. A Disaster Recovery Plan deals with these kinds of situations. It is closely allied with a Business Continuity Plan, which covers how the organization will continue to operate in the event of a prolonged outage.

Capacity Management
Capacity management ensures that appropriate IT resources are available to meet business requirements. Capacity management plans for additional resources as use of current system resources increases and nears the point of full capacity. Based on the release scope, the capacity manager determines the infrastructure modifications that are required to maintain system performance and availability after the release is implemented. This individual coordinates all modifications with other release team members.

Security Administration
Security administration develops, implements, and manages security controls, including software controls and technical infrastructure, to ensure the safe and secure operation of the live environment. The security manager must review all releases before implementation in the live environment. Additional software or hardware modifications to the release or to the live environment may be required to ensure that proper system security is maintained following implementation.

Project Management
For software developed under the control of a project, Release authorization requires Operations Acceptance and User Acceptance letters.

Release Management should assist project management in planning and implementing a Release, but it does not take control.

[To top of Page]

Policies & Guidelines

[To top of Page]

How the Process Scales

[To top of Page]

Concepts

Release Unit

'Release unit' describes the portion of the IT infrastructure that is normally released together. The unit may vary, depending on the type(s) or item(s) of software and hardware.

The general aim is to decide the most appropriate release unit level for each software item or type of software. Such a policy means that each time a Configuration Item (CI) forming part of a service is changed, a Full Release of the whole of that system is normally issued. The same organization may decide that a more appropriate Release unit for PC software should be at suite level, whilst the Release unit of a batch application should be at program level. The following factors should be taken into account when deciding the appropriate level for Release units:

Related to this matter is whether there needs to be a single definition of a release unit as an organizational guideline or whether multiple definitions can exist sensitive to the unique characteristics of applications and roll-out centers.

Release Type

Full Release
The major advantage of Full Releases is that all components of the Release unit are built, tested, distributed and implemented together. There is no danger that obsolete versions of CIs that are incorrectly assumed to be unchanged will be used within the Release. There is less temptation to short-circuit testing of supposedly unchanged CIs and of the interfaces from changed CIs to unchanged ones.

Any problems are therefore more likely to be detected and addressed before entry into the live environment. The disadvantage is that the amount of time, effort and computing resources needed to build, test, distribute and implement the Release will increase. Although in some circumstances the testing of a Delta Release may need to be as extensive as that for an equivalent Full Release, the amount of building effort required to test a delta Release is normally less than for a full Release.

Regression testing as part of the process of implementing a Full Release allows a large number of components to be re-tested to ensure that there is no degradation in system function or behaviour.

An example of a Full Release could consist of the complete Release of a new version of client desktop software, or client desktop hardware, or both.

Delta Release
A delta, or partial, release is one that includes only those CIs within the Release unit that have actually changed or are new since the last full or delta Release. For example, if the Release unit is the program, a delta Release contains only those modules that have changed, or are new, since the last full Release of the program or the last delta Release of the modules.

There may be occasions when Release of a full unit cannot be justified. In such cases, a Delta Release may be more appropriate. A decision is required on whether delta Releases should be allowed, and under what circumstances. There is no single 'correct' choice. It is recommended that delta Releases be allowed, with the decision being taken case by case.

In each case the Change Advisory Board (CAB) should make a recommendation, based upon all the relevant facts, on whether the Release unit stipulated in the Release policy is appropriate or whether a delta Release is preferable. In making its recommendation, the CAB should take into account:

Package Release
To provide longer periods of stability for the live environment by reducing the frequency of Releases, it is recommended that, where appropriate and where the resulting larger amount of Change can be confidently handled without problems, individual Releases (full units, delta Releases or both) are grouped together to form 'package Releases,'. For example, Changes to one system or suite will often require Changes to be made to others. If all these Changes have to be made at the same time, they should be included in the same package Release.

A package can, for example, contain an initial version of a new service, several new versions of batch programs, a number of new and initial versions of individual modules, together with the Release of a complete new desktop system (both hardware and software). Both full and delta Releases may be included.

The use of package Releases can reduce the likelihood of old or incompatible software being wrongly kept in use. It can encourage organizations to ensure that all Changes that should be made concurrently, in different suites and systems, are actually made concurrently. It can also encourage organizations to test the interworking of these suites and systems fully.

Care should be taken, however, not to exceed, in any particular package Release, the amount of Change that can be handled comfortably. When making a decision on what to include in the package, care should be taken to ensure that the full impact of all individual parts on each other part is understood and has been properly assessed.

Definitive Software Library (DSL)

This is the term used to describe a secure area in which the definitive authorized versions of all software Configuration Items are stored and protected. This one storage area may in reality consist of one or more software libraries or file-storage areas that should be separate from development, test or live file-store areas. It contains the master copies of all controlled software in an organization. The DSL should include definitive copies of purchased software (along with licence documents or information), as well as software developed on site. Master copies of controlled documentation for a system will also be stored in the DSL in electronic form.

Each application area has a file area where the current production version and the previous two revision versions of the complete application are maintained. Provision is made to include any build routines required to bridge patches/fixes etc which occurred between these versions.

The DSL will include:

Release Risk Category

High Risk

Medium Risk

Low Risk

Release Communications

Proper communication during the release project keeps users and stakeholders involved in the release process. It leads to a better understanding of the impacts that result from release implementation and helps to reduce user concerns. The communication process involves developing and executing a communications plan, and establishing an employee feedback mechanism as well.

Development includes determining the information to be provided during the project, its audience, the communication channels, and the frequency of information delivery. Execution involves setting the plan into motion in the organization.

It is extremely important that the Communications Coordinator identify a reputable person within IT and/or user community leadership to issue all correspondence to users. Assigning a person with credibility to this role demonstrates management support and builds user confidence for the project. The goals of the communication are to:

Pre-production Testing

It is important to establish and maintain a test environment which simulates as closely as possible and within the boundaries of prudent financial management, the live environment. Adequate user acceptance testing of the release can only be performed in a test environment that is representative of the live environment.

Coordinating the establishment of the test environment with the configuration manager helps to determine the requirements for mirroring the live environment. The test coordinator must decide what tool to use for reporting the results of testing. A computer-based tool allows the coordinator to monitor test results, develop result reports that can be passed on to management and other stakeholders, and track testing status. The coordinator should also specify tools needed to monitor operating effects of the new release on the computing environment.

Release Build
"Release build" refers to the task of building the software release from the application's source code that is stored in the DSL. Release management builds all releases for implementation in both pre-production and live environments. A release built for the pre-production environment may malfunction due to environmental dissimilarities if it is implemented in the live environment. Consequently, the release should be built in both environments from applications stored in the DSL. When building the release in pre-production, completely document the build task in a Build Book, because it will be used to implement the release in the live environment. The build task may also involve generating databases and populating them with data to facilitate user acceptance testing.

At a minimum, four types of testing are performed prior to releasing an application:

Testing Environments
To adequately meet more stringent testing requirements can mean that that the organization may needs as many as six distinct environments, all physically isolated from each other:

The need for financial economy may mean some consolidation of these different purposes within a physical setup. Using an environment for multiple purposes places additional importance on the need to maintain order and discipline in switching amongst the various roles. In doing this, attention is re-focused to the need to quickly create and re-create the environment to a baseline condition (as described by the CMDB).

Each major application may retain its' own set of associated testing environments. This ensures it will not have to 'compete' for testing time on generic devices, allows a more precise mirroring of the Production environment and means less preparation for the environment prior to each test. This is expedited by using tools and procedures, which ensure that the production environment is known exactly and can be re-created quickly. There are many tools for comparing two environments and for capturing and restoring environments to a 'baseline' image.

Test Results Analysis and Failure Correction
The test coordinator is responsible for reviewing the test results. Establishing a computer-based reporting and tracking system facilitates this process. The coordinator must determine if test failures are the result of a problem with the test script, the test environment setup, an application design, or with the tester's failure to conduct the test properly. If the test was not run properly or the test script is found to be faulty, the test should be re-run and all corrective changes to the script documented. If the test environment is improperly set up, the environment should be reconfigured and the test re-run. The test coordinator should assess the implications of reconfiguring the test environment for release implementation in the live environment and report them to the release manager.

It is very unlikely during this stage of testing that a design problem will be identified as the cause of a failure. However, if a design problem is suspected, the potential impact to the live environment and the likeliness of problem occurrence must be considered. The test coordinator must report all findings to the release manager, who coordinates all problem corrections with release team members and development personnel.

[To top of Page]

Roles and Responsibilities

Release Process Owner
Release Process Owner is an individual with accountability for all production releases within the pre-defined scope of systems included in the Release Management process.

Release Manager / Change Initiator
The Release Manager is responsible for managing the release for an application. The Release Manager develops detailed release plans, coordinates all project teams associated with the release, acts as liaison to appropriate management, and manages the evaluation process upon completion of the project. The Release Manager also acts as the Change Initiator who coordinates development or procurement of change components and testing, pilot staging, and full implementation of the change in the live environment.

For releases with large and complex scopes, the Release Manager forms a Migration Team to manage the many required release activities. The Release Manager selects the team members, obtains the appropriate management approval, and assigns team roles and responsibilities. The Release Manager facilitates team communication, thereby ensuring that releases are implemented according to the approved timeline with system integrity and availability maintained.

The Release Manager is responsible for ensuring active participation in Release Board meetings and providing monthly release metrics. The release Manager sponsors Release plans, schedules and implementations before the Corporate CAB. Responsibilities include:

Migration Teams
A Migration Team is a team with responsibility for a specific Release. The members of the team need to have appropriate production access to execute migrations. All production changes are coordinated through the Release Board and the appropriate Change Advisory Board. The Migration Team has accountability the Release Process Owner and the Release Board for remaining with overall Release Policy Guidelines and within the release schedule established for the application release or rollout. Migration Team Responsibilities include:

Release Board
The Release Board is a team with representation from all system area teams and the associated business units. The purpose is to approve Release Schedules and Content based on cross-organization knowledge. The members of the team represent major applications within the organization. Responsibilities include:

Change Advisory Board (CAB)

Release Coordinator
Release Coordinators are responsible for ensuring that all change requests for their area's systems are submitted to the Release Board and Corporate CAB with the appropriate lead-times. The requests should include all appropriate information including a high-level impact analysis.

For each release that they have changes in the Release Coordinators are responsible for the following:

Communications Coordinator

Documentation Coordinator

Rollout Coordinator

Testing Coordinator

Training Coordinator

Availability Management

Capacity Management
Participates in the Change Advisory Board to review suggested changes for impact to existing service levels

Security Management

[To top of Page]

Performance Measurement

Key Goal and Performance Indicators
A Key Goal Indicator, representing the process goal, is a measure of "what" has to be accomplished. It is a measurable indicator of the process achieving its goals, often defined as a target to achieve.

By comparison, a Key Performance Indicator is a measure of "how well" the process is performing. They will often be a measure of a Critical Success Factor and, when monitored and acted upon, will identify opportunities for the improvement of the process. These improvements should positively influence the outcome and, as such, Key Performance Indicators have a cause-effect relationship with the Key Goal Indicators of the process.

A number of key performance indicators (KPIs) should be monitored to assess the effectiveness of the Release Management process. Consider choosing some measures that show a clear indication of at least some of the following:

Metrics
Breakdowns

Measurement Issues
[To top of Page]

Processes

Release Management Summary

Controls
  • Release Policy & Guidelines
  • Change Guidelines
Inputs
  • Project lifecycle
  • Project Documntation
  • service-related deliverables
  • authorized RFCs
  • Release Policy
  • Overview of business needs
  • Constraints and dependencies
Activities
Outputs
Mechanisms
  • Discovery tools
  • Testing
  • Templates

Inputs

[To top of Page]

Controls

[To top of Page]

Mechanism

[To top of Page]

Outputs

[To top of Page]

Activities

Click for process description

RM1: Release Planning

Developing a release plan is the most important release management activity. The plan acts as the project guide for team members. A detailed and comprehensive plan is necessary to ensure that a release does not negatively affect the existing operations architecture. The release plan helps the release manager identify potential problems in advance, thus reducing impacts to system availability and integrity.

Planning a Release involves:

Release planning inputs include:

Release planning outputs include the plan for a particular Release, and high-level test plans and acceptance criteria for the Release. The outputs of Release planning are normally documented in the Change Management plan for a particular project.

RM1.1 Gain approval for Release Objectives
Objective: Obtain approval for Release Objectives and approval to proceed with Release planning without expending significant resources in case of a release conflict of conceptual omission or inaccuracy.

The Release Manager coordinates the articulation of the objectives of the release by:

RM1.2 Gain internal approval on Release Plan
Objective: Release plan has wide acceptance and acknowledgement.

Achieve consensus on the Release contents and obtain agreement on the phasing over time and by geographical location, business unit and customers. Get approval by Release Board to proceed. The Release Board recommends the appropriate forum in which the Change is required to be heard. If the impacts are seen to be containable (by referencing OLA Guidelines between the Corporate and Local Change Boards) then the authorizing board will be the Local Change Board (LCB). If there are potential infrastructure-wide implications then the Change Board will be Corporate CAB.

Assess magnitude of changes involved and what Release/Change forums need to be approached for approval by one or more of:

RM1.3 Develop High Level Release Schedule
Objective: Schedule releases in order to assess their impact upon the infrastructure in relation to other change events.

If approval to proceed is granted by the Release Board then the Release Manager details based on best available estimates, the timing for the rollout. This is done in consultation with line of business representatives and using the Change Calendar as a reference to determine points of conflict and assessing the CMDB for potential points of infrastructure impact,. This schedule forms part of the Request for Proposal to be submitted to the Change authority.

CM1.2 RfC Filtering and Approval
(Note : This step is part of the Change Management process)

Objective: Gaining approval from the authorized source which is best aware of all possible changes occurring and which best represents the total interests of the entire infrastructure.

The Release Manager develops the Request for Proposal to be submitted to Change Management to gain overall approval to proceed with the Release schedule.

The Change Management forum will be either the Corporate CAB or the Local CAB for the change depending upon the recommendation of the Release Board. Note: In most cases the RFC for approval in concept for the release will be presented before Corporate CAB because of the wide ranging and, as yet in the process, undefined overall impacts on the infrastructure. Where there is uncertainty it is better to err on the side of caution and put the release through the greater scrutiny associated with the Corporate CAB forum. Individual changes associated with the product rollout may, thereafter, be referred to a Local CAB after the initial testing and backout strategies have been presented.

[To top of Page]

Click for process description

RM2: Designing, Building and Configuring a Release

Conducting the actual build involves, at a minimum, compiling and linking application modules produced in-house and any bought-in software that is held in source form, in each case from the DSL. It may also involve incorporation into the Release of any bought-in software, in object form, that is to be included. It may include generating databases and populating them with test data or, for live builds, static reference data (e.g. the Post Office Address File). Where necessary, it includes the generation (or, minimally, transcription from the DSL) of the operating system, the DBMS run-time components, etc.

RM2.1 Develop Testing Strategy & Plan
Testing Coordinator, Release Mgr

Objective: Ensure that all tests to be performed have been identified, and formal processes and procedures have been developed to encapsulate all test scenarios.

Establish criteria to determine when and if the application is Fit for Release. The Defect List is a primary concern in this assessment as it establishes how 'fit' the application is for production. This assessment forms part of a Testing Strategy to be developed by the Release Manager.

The Test Coordinator is then responsible for developing a comprehensive test plan based on the Testing Strategy that includes: scope and objectives, schedule, risks, test scripts, documentation requirements, resource requirements, and problem resolution. ( See the Section on Criteria to Determine Amount of Testing Required at the end f this document).

The Testing Coordinator will have the Release Manager approve the Plan. The Plan will be part of the documentation to be placed in the DSL and recorded as a CI in the CMDB.

Testing strategy should include the following

Any requirements, either organization specific or regulatory which must be implemented during the testing phases.

RM2.2 Assemble Release Resources
Objective 1: Cost-effective provision of resources available to develop design, build and configuration of release

Using the Build Book as a guide, obtain any additional IT staff and purchase or otherwise acquire hardware and software components. The receiving and storing of components (i.e., logistics) will need to be managed from a logistical standpoint. Then identify other resources needed both for reproducing the conditions set out in the Release Plan and for ongoing service delivery - the secured resources should include everything necessary to implement service support and control mechanisms.

Objective 2: Ensure smooth project execution by ensuring all necessary conditions are in place.

All software, parameters, test data, run-time software and any other software that is required for the Release should be under Configuration Management control. Quality control checks should be performed on this software before the application is built. A complete record of the build results should be logged in the CMDB. This ensures that a build can be repeated should it be necessary.

In securing testing resources two best practices are advanced:

The high-level test plans for the Release need to be expanded to include specific tests to verify the successful rollout of the Release, by satisfying critical success factors and exit criteria.

RM2.3 Procure / Assemble Hardware
Using the instructions documented in the Build Book, reproduce the components required to deliver the service function or end-to-end service (i.e., install and integrate related hardware, network cards, install system and application software and scripts, configure hardware and software, etc.). Do the same for the components required to provide service support and control - multiple copies of components may be required for distribution to any number of target sites.

Move the components to designated target sites for final assembly, integration, and implementation.

RM2.4 Build / Assemble Hardware
Using the Release Plan as a guide, perform the final installation and integration of all required management hardware and management application software at the designated target sites.

Install any software not addressed by the initial component assembly and integration using available software control and distribution tools and methods. Any final configuration updates should be performed at this time as needed to provide the service support and control mechanisms detailed in the Release Plan. All localized data should be loaded.

[To top of Page]

Click for process description

RM3: Release Acceptance

The testing of the Release should be performed by independent business staff and involve IT staff to verify any changed support procedures. Any back-out procedures should be tested as part of this activity, which should prove that the built Release can be installed and run as required. This includes testing both the installation procedures and the function of the final system.

Testing should cover the installation procedures and the functional integrity of the resultant system. There should be a sign-off for each stage of testing. The final acceptance and sign-off for the Release to go into the live environment should be an agreed stage of the Change Management process. All levels of support should be involved in the testing of major Releases.

Release acceptance should be performed in a controlled test environment that can be reinstated to known configurations of both software and hardware. These configurations should be described in the Release definitions and stored in the CMDB, along with any other related CIs.


Release acceptance inputs comprise:

The end result of the acceptance activity should be a sign-off on the completeness and accuracy of the whole Release.

The outputs should include:

RM3.1 Migrate Configuration Items (CI) from DSL to UAT
Objective: Migrate CIs to User Acceptance Testing Environment

The Testing Coordinator checks the CIs designated in the Release and Test Plans from the DSL into the Pre-production (testing) environment. Any additional check-outs are noted by ensuring modification to the Release and Test Plan documents prior to exit.

RM3.2 Conduct Acceptance Testing
Objective: Provide assurance that all system changes and performance issues have been identified during previous test stages, and that the design changes meet original system / user specifications.

Acceptance testing procedures should :

These tests should include:

UAT should be fully documented using standard methodology agreed during the strategic and design phases, and should indicate issues to be resolved prior to the system being implemented in the live environment.

UAT must have followed strict acceptability criteria as defined during the design phase, and should only be formally authorized subsequent to completion of testing by both the IT and Business Users for each key process.

The Testing Team and business management should provide written evidence of authorization and approval of each key testing process.

Testing should confirm acceptable system results and environment performance and The Testing Coordinator should confirm that test failure points have been resolved and re-tested and the entire process documented. Testing should confirm success of user acceptance shakedown and resolution of identified issues.

[To top of Page]

Click for process description

RM4: Rollout PLanning

Rollout planning extends the Release plan produced so far to add details of the exact installation process developed and the agreed implementation plan.

Rollout planning involves:

RM4.1 Develop Rollout Timetable
Objectives: Better implementation through planned actions

RM4.2 Develop Site Success Criteria
Objective: Establish site installation performance criteria to assess success of distribution and installation

Establish Site Performance Goals and Metrics:

The next step is to design performance tests using the test plan's goals and metrics as a guideline to insure the most realistic simulated users. How users connect to the site (via modems, ADSL, LAN cable etc.) and how much time they take to do a transaction on the site can be simulated in order to track the performance and health of the system.

[To top of Page]

Click for process description

RM5: Communications, Site Preparation & Training

Customer liaison staff as well as customers and support staff need to know what is planned and how it might affect them. This is normally accomplished through training sessions, communications and user involvement in the Release acceptance stage. Problems and Changes that need to be made during rollout should be communicated to all parties to keep them informed and to set their expectations. This activity normally includes running a series of rollout planning meetings with all of the interested parties to ensure that the plans are properly reviewed, checkpoints are established and all parties agree their responsibilities.

It is important to publicize the Release mechanism. It is also important to publicize any constraints to end Users (for example that it may not be possible to effect an update to all PCs overnight in a large organization).

RM5.1 Develop Site and Send Out Communications
Objective: Ensure affected parties are kept informed and establish contingency communications to mitigate affects of any issues encountered.

RM5.2 Develop and Implement Site Training
Objective: Establish site training requirements associated with the rollout

RM5.3 Prepare Site for Release
Objective 1: Minimize surprises caused by changes to installation sites

For certain releases, it may be appropriate to perform a survey of the production environment to ensure that the rollout plan contains all of the activities required to deploy the release into that environment. The survey might also uncover issues with the production environment that could significantly delay or even prevent the deployment of the release. The Release Manager will need to escalate these issues to change management. For example, A survey may reveal that the data center does not have sufficient (free) network connections to support the deployment of a file server, for example, and that a new network switch is required. The release manager will need to discuss the problem with change management and seek their approval for the purchase and installation of the required equipment. Assuming approval is given, the tasks and activities required to connect it into the production network must be factored into the rollout plan.

Objective 2: Ensure all elements required for the release are in place and operational in order to increase probability of successful release

Software distribution should be designed so that the integrity of software is maintained during handling, packaging and delivery. Automated software distribution to remote locations using SMS should be used whenever practical so as to save resources and reduce the distribution cycle time. After distributing software over a network, the Release manager should check that the Release is complete when it reaches its destination. It is quite common to distribute a new version of an application to a target installation, but to do so in a way that it remains dormant until activated. This should be accomplished by following the tested installation procedures. These may require running automated installation routines or other one-off utilities to effect the Change. To ensure a smooth rollout, an automated check of the target platform is required so as to ensure that it satisfies hardware and software prerequisites. This would call upon the audit services of Configuration Management, but Release Management drives the process.

[To top of Page]

Click for process description

RM6 Distribution and installation

Distribution of the software Releases from the build environment into the controlled test environment and then into the live environment should be accomplished with any associated hardware or co-requisite changes.

The processes for procurement, storage, dispatch, receipt and disposal of goods should ensure that equipment is delivered safely to its destination in its expected state. Storage areas should be secure. Checks on the receipt of goods against supporting delivery documentation are required for Configuration Management. Installation, environmental and electrical checks should be planned and completed before connection to the network.

Software distribution should be designed so that the integrity of software is maintained during handling, packaging and delivery. Automated software distribution to remote locations will save resources and reduce the distribution cycle time. After distributing software over a network, it is essential to check that the Release is complete when it reaches its destination.

Bringing application software Releases into active use in these environments is the final step in effecting the Change. It is quite common to distribute a new version of an application to a target installation, but to do so in a way that it remains dormant until activated. This should be accomplished by following the tested installation procedures. These may require running automated installation routines or other one-off utilities to effect the Change. To ensure a smooth rollout, an automated check of the target platform is required so as to ensure that it satisfies hardware and software prerequisites. This would call upon the audit services of Configuration Management, but Release Management drives the process.

The CMDB should be updated following installation or disposal of hardware or software, to ensure that it reflects the final position. It may be necessary to retrieve old versions of software that have been superseded, to prevent software licence rules from being violated.

RM6.1 Review and Revise Rollout Schedule
Objective: Only place in production releases which have been adequately assessed

The Migration Team may often find that business requirements and priorities change during the course of release development and it might be necessary to change aspects of the release plan or the rollout order in response to these changes. Therefore, it is important to confirm the rollout order as the first step in rollout execution. If, for example, part of the organization that originally agreed to wait until the end of the rollout process to deploy the release now identifies a pressing and urgent need for the release, the release team may be forced to change the release plan to accommodate them. As well, prior to the proposed release date the Release Manager should ensure that all changes have been tested and signed off by the impacted business areas. Any changes not ready for release need to be pulled from the release and the remaining content verified as still working without the pulled changes. The Release Manager is notified of pulled changes as part of this process.

RM6.2 Site Survey
Objective: Minimize surprises caused by changes to installation sites

For certain releases, it may be appropriate to perform a survey of the production environment to ensure that the rollout plan contains all of the activities required to deploy the release into that environment. The survey might also uncover issues with the production environment that could significantly delay or even prevent the deployment of the release. The Release Manager will need to escalate these issues to change management.

CM6.2 Execute Release
Objective: Update the infrastructure without causing failures to any components The process of moving the release into the production environment depends on the type and nature of the release and on the selected release mechanism. In all cases, however, the Release Manager should be provided with status reports and, where appropriate, tools and technologies that will enable him or her to track and monitor the progress of deployment. As changes are made to IT components during deployment, corresponding changes must be made to the configuration items and relationships modeling them in the configuration management database (CMDB).

Once the release is deployed, the Release Manager needs to confirm that it is working correctly before proceeding with any further deployments. For some releases, technical support staff can obtain confirmation by using a number of tools and technologies; for others, the Release Manager may need to ask the service desk to contact individual users for their feedback and comments.

If the release fails to meet expectations or serious problems are encountered during deployment, problem management may be needed to help identify and diagnose the root cause of the problem. If a suitable fix or workaround can be found, this should be documented and a request for change (RFC) created to deploy it into the production environment. If not, it may be appropriate to use the rollback procedures to remove the release from that environment.

Once the deployment phase is complete, the release tracking system should be used to record the results and information about any workarounds or request for change (RFC) raised in support of the release. If the release needs to be backed out, this should also be recorded, including any information that supports this decision.

CM4.1 Close RfC

Objective: Ensure integrity of Change and Release Management processes by ending this Change in the prescribed method.

If the change is successful the RfC is marked CLOSED. Important changes are then subject to a post-implementation review in process RM6.6

CM4.2 Perform Back-out
Objective: restore state of known and trusted production environment in order to avoid sources of possible incidents.

Plans should be developed beforehand to back-out changes in case significant problems occur during deployment. If the Change was not successfully implemented into the production environment the Change needs to be backed-out. If backout plans need to be invoked the Change Builder should be conscious of several come caveats regarding their use:

When back-out is completed, change the status of the RfC to "Completed" with a completion code of Backed Out (or use whatever other method has been agree to within Change management for denoting incomplete changes). Description to be developed.

RM6.6 Post-Release Review
Objective: Codify lesson learned from this release for improvement of future releases

A Change Review is conducted for all major changes as part of the Change Management process outlined in CM5 - Post-Implementation Review. In a similar fashion, a post-implementation release review should be conducted which assesses the the successes and problems encountered during the entire release process in order to codify the lessons for future release ventures.

[To top of Page]

Appendix

Terms Release Plan Testing Plan Criteria for Amount of testing

Terms

TermDefinition
Actual Release DateThe Actual Release Date is the date on which the approved changes were released to Production.
Area ReleaseAll changes for a single Business or System area that are scheduled to be moved to Production during the same release. Areas have been predefined by Management and agreed to by the business.
Active / ApprovedAny change actively being worked on with a goal to complete the change within a defined time period, or any change prioritized by the appropriate and/or business personnel with the intention to complete work during a set time period. Some Scoping, Estimating, or other Project Initiation work may not be considered 'Active' as a part of the Release Process. A change request may not be 'Approved' until the business and management prioritizes it. Filler work, or work done when time allows may be considered not Approved and/or Active until a date can be proposed for the completion of Build and Test.
AvailabilityAbility of a component or service to perform its required function at a stated instant or over a stated period of time. It is usually expressed as the availability ratio, i.e. the proportion of time that the service is actually available for use by the Customers within the agreed service hours.
Build BookA documented record of the sequence of steps involved in building a release from the version currently resident in the DSL.
Business Sign-offStandard and Exception Releases include Business Signoff as part of completing the Production Entrance Criteria Checklist.

For Emergency Releases that occur during business hours, the Production Entrance Criteria Checklist is not required provided the Business agrees to the fix and acknowledges the risk of accepting the change.

Business Signoff of an Emergency Release is completed by an application Release Coordinator forwarding e-mails to the Release Process Owner and Change Manager.

Category, Type and Item (CTI)Method for Classification of a group of Change documents according to three-fold hierarchical coding structure used by many organizations.
Change Advisory Board (CAB)A group of people who can give expert advice to Change Management on the implementation of Changes.
Change ManagementProcess of controlling Changes to the infrastructure or any aspect of services, in a controlled manner, enabling approved Changes with minimum disruption.
Configuration Item (CI)Component of an infrastructure - or an item, such as a Request for Change, associated with an infrastructure - that is (or is to be) under the control of Configuration Management.CIs may vary widely in complexity, size and type, from an entire system (including all hardware, software and documentation) to a single module or a minor hardware component.
Configuration Management Database (CMDB)A database that contains all relevant details of each CI and details of the important relationships between CIs.
Controlled Release The incremental last set of changes completed after user acceptance testing to which a version identifier can be applied.
Critical Success Factor (CSF)Critical Success Factors - the most important issues or actions for management to achieve control over and within its' IT processes.
CustomerPayer of a service; usually theCustomer management has responsibility for the cost of the service, either directly through charging or indirectly in terms of demonstrable business need.
DefectAny behavior that is not defined in the product's functional specification and that has or can have an adverse effect on the user of a product.
Defect TrackingA process used by software developers to manage deficiencies in their software products. Defect activities include
  • reporting - the act of reporting the precense of a defect
  • analysis - process of determining the cause and potential solution to a reported defect
  • status updating - adding information and corrections to the original defect report including the documentation of status and root cause of identified problems in the production environment
Definitive Software LibraryA secure compound in which the definitive authorized versions of all software CIs are stored and protected.
EnvironmentA collection of hardware, software, network and procedures that work together to provide a discrete type of computer service. There may be one or more environments on a physical platform e.g. test, production. An environment has unique features and characteristics that dictate how they are administered in similar, yet diverse, manners.
Exception ReleaseException Releases occur when production changes have a business driver that requires a Release that does not meet the Standard Release criteria.
IncidentAny event that is not part of the standard operation of a service and that causes, or may cause, an interruption to, or a reduction in, the quality of that service.
Known ErrorAn Incident or Problem for which the root cause is known and for which a temporary Work-around or a permanent alternative has been identified. If a business case exists, an RFC will be raised, but, in any event, it remains a known error unless it is permanently fixed by a Change.
Operational Acceptance TestingFormal tests to satisfy the IT operations department that the developed system is of adequate quality to enter the live environment and go into live production.
PrioritySequence in which an Incident or Problem needs to be resolved, based on impact and urgency.
ProcessA connected series of actions, activities, Changes etc. performed by agents with the intent of satisfying a purpose or achieving a goal.
Process ControlThe process of planning and regulating, with the objective of performing a process in an effective and efficient way.
ReleaseA collection of new and/or changed CIs which are tested and introduced into the live environment together.
Release BuildThe task of building the software release from the application's source code that is stored in the DSL. When building the release in pre-production, completely document the build task in a Build Book, because it will be used to implement the release in the live environment.
Release HandoffA conscious act of shifting responsibility for a facet of the release from one group or individual to another.
Release RecordA record containing details of which CI's are affected by a release (planned or implemented) and how.
Release TypeThe categorization of releases that allows a Release Coordinator to determine the appropriate procedures to follow to implement Production changes. The Release Process includes three Release Types: Standard, Exception and Emergency.
Release UnitThe portion of the IT infrastructure that is normally released together.
Request for Change (RFC)Form, or screen, used to record details of a request for a Change to any CI within an infrastructure or to procedures and items associated with the infrastructure.
RiskA measure of the exposure to which an organization may be subjected. This is a combination of the likelihood of a business disruption occurring and the possible loss that may result from such business disruption.
Risk AnalysisThe identification and assessment of the level (measure) of the risks calculated from the assessed values of assets and the assessed levels of threats to, and vulnerabilities of, those assets.
Risk ManagementThe identification, selection and adoption of countermeasures justified by the identified risks to assets in terms of their potential impact upon services if failure occurs, and the reduction of those risks to an acceptable level.
RoleA set of responsibilities, activities and authorizations.
Service Level AgreementA written agreement between a service provider and Customer(s) that documents agreed services and the levels at which they are provided at various costs.
StagingAssembled, configured and integrated components are created as specified by the Build Book and distributed to target sites for implementation.
StagingAssembled, configured and integrated components are created as specified by the Build Book and distributed to target sites for implementation.
Standard ReleaseWhen a change to production is planned prior to execution and implemented on a pre-determined Release Date or if the date is not on the published release schedule, the date may be selected as a Standard Release as long as the criteria noted below are met:
  • Current Bi-Weekly Standard Release process - advance notice at least 2 Months before the Release Date
  • Monthly Standard Releases process (targeted for 9/03) - advance notice at least 3 Months before the Release Date,
  • All production changes that enter the Release Process must meet all time requirements for the Risk Type to be considered standard.
SystemAn integrated composite that consists of one or more of the processes, hardware, software, facilities and people, that provides a capability to satisfy a stated need or objective.
System User InstructionsThe detailed area system and process instructions that System Areas send to the Business Customers and system users who will be impacted by a release. These are typically targeted to the people who use the system and contain an overview of why a change is being made, a set of step-by-step instructions or other information that the system user will need once the change is in production.
Test EnvironmentA computer system, or a discrete part of a computer system (made up of hardware and system software), which is used to run, and sometimes to build, software releases for operational acceptance testing.
Test PlanAn action plan which provides an overview of the project, lists items to be tested and serves as a communication device between all members of the project team. The plan also identifies sufficient and proper tests to assure that previously tested related functions will execute properly.
Test ScenariosA series of tests for an application designed to simulate the business demands on the application and its' components.
Urgent ChangeAn Urgent Change is used for production changes that have a business or system driver that requires immediate implementation, regardless of time. This occurs when the business risk of not changing the production environment out-weighs the risk of making the change and the change cannot wait for the next standard Release Date. A change is considered Urgent if there is a significant detrimental impact to the customer experience (external to the organization), with no reasonable workaround, and the issue causes a financial impact AND/OR the issue keeps one or more people from doing their job. An Urgent Change requires the approval of Corporate Emergency CAB.
User Acceptance Testing (UAT)Testing of the full solution by the business / users to validate that it operates correctly and meets requirements. The implication is that this is the point at which the business agrees to take the solution as produced by the developers (whether internal or external).
VersionAn identified instance of a Configuration Item within a product breakdown structure or configuration structure for the purpose of tracking and auditing change history. Also used for software Configuration Items to define a specific identification released in development for drafting, review or modification, test or production.
Version ManagementVersion Management (control) is the management of software or application at the version level. A version is a snap-shot of a system and exists as an entire entity (full release) or a version plus a series of builds to re-create the version from the previous Full release. The key concept of version management is the ability to define, and later re-create, a version of the application.

[To top of Page]

Release Plan Contents

Objectives
The first step in planning a release is to define the release objectives and identify the specific business goals to achieve. Both short- and long-term objectives should be defined. A clear understanding of these objectives helps the release team stay on course throughout the release process.

Scope of Release
Describe the extent of the business which is affected by this release and provide any information on the ROI associated with the Release. Itemize all new and existing Configuration Items (CIs) which will be introduced or modified by this release. For new CIs describe known associations with other CIs using the association list described in Configuration Management Guidelines.

Release Process Resource Requirements
The following sections outline the resources that are required to test and implement the release. The change initiator fills out and submits a request for change. This individual should provide the majority of this information in the RFC. For more information, see the change management process. The release manager is responsible for procuring and coordinating these resources, which are described in detail below.

Personnel
Successful implementation of a release requires the coordination of numerous functions within the organization. A large release may require that some functions be outsourced if an organization is unable to provide the necessary support. As noted previously, the release manager is responsible for selecting the release team managers and coordinators. In small organizations, one person may fill multiple roles and in larger organizations several individuals may fill one role. Each release team manager or coordinator is responsible for selecting the personnel necessary for fulfilling the position's responsibilities. For example, the test coordinator selects users to perform acceptance testing who are representative of the population that will use the release in their assigned work.

Test Infrastructure Preparation
The release process involves a user acceptance phase, which occurs in a test environment. Preferably, testing occurs in a pre-production environment which emulates the production environment to the greatest feasible extent. If such a facility is unavailable, a test environment that is separate from the live environment must be designed and built. The test coordinator, with the support of other release team members, is responsible for planning, designing, and building an environment that mirrors, as closely as possible, the future live environment required to support the release. Any deviations from the production environment must be noted and assessed for the risk potentially introduced by the difference.

Release Operational Requirements Following Implementation
Changes to the live environment may necessitate making changes to such areas as staffing, documentation, and the operating infrastructure. The release manager is responsible for preparing the organization for the operation of the release in the live environment. This entails coordinating many activities including training users and preparing documentation. During the release process, these requirements will change in response to development modifications and testing results.

Personnel
Implementing a release in the live environment may necessitate changes to current staffing levels, roles, and responsibilities. Personnel planning is coordinated with the organization's human resources staff, which must be made aware of staffing modifications at the earliest possible date to ensure that personnel are available at the time of implementation (or earlier) if training is required.

Training
It is important to provide a comprehensive training program to fully prepare users, the service desk staff, and the rollout team for the release. This section of the release plan is based on input from the training manager and outlines the types of training planned (tutorials, paper and Web-based aids, and classroom training, for example). It should also include when the training is conducted, how it is administered, and the reasons for providing it.

User training is most effective when it is administered immediately prior to implementation and when it can be leveraged as a tool to improve operational performance. Effective training dispels employees' concerns about using the new system and also reduces downtime following implementation. If infrastructure changes are required to support the release, users must be trained on these modifications as well. Communicating the training plan to users keeps them involved in the release process and builds support for the new system.

Training must also be provided to the service desk staff and rollout team. Establishing training priorities for the service desk staff is important because this staff plays an important role in gaining user acceptance of the new system. An unprepared staff is less able to answer questions and resolve problems quickly, and this leads to loss of confidence by users of the new system. The service desk staff should be trained before user acceptance testing begins. Additional training should be conducted during the test phase to take advantage of the lessons learned through user assessment of the new system. The rollout team must be fully trained on the backout procedures before deployment to the live environment can begin. This training occurs in conjunction with user acceptance testing and pilot staging implementations in which the rollout team can get hands-on experience.

Documentation
User documentation includes all of the information necessary to effectively operate the new system, including user guides, administrator guides, and reference manuals. This section of the release plan describes the method of distributing documentation (for example, print or Web methods) and identifies the recipients. The documentation coordinator is responsible for assessing existing documentation, developing new manuals, and disseminating the information to the persons who need it. Documentation assessment and development take place in conjunction with release development because modifications during the development and test phases dictate required changes in documentation.

Infrastructure
The release plan also specifies technology requirements, based on the impact analysis results and on input from managers and coordinators. This section outlines the infrastructure changes and upgrades required to support the release, and specifies the implementation timeframe. It defines the changes to networks, servers, desktops, communication equipment, and the physical site that must be accomplished prior to implementing the release. This planning is needed to prevent infrastructure implementation delays, which result in release implementation delays, user frustration, and management scrutiny. Infrastructure requirements are reassessed throughout the release build, test, and pilot phases.

Communications Plan
Communication is an essential part of preparing for a release implementation. A detailed communications plan enhances the effectiveness of the release implementation by keeping all affected personnel informed, which keeps them involved. This plan, which is developed by the communications coordinator, should be a separate document from the release plan document and is covered in more detail in the communication activity section of this document. For more information, see the section on "Communication." This section of the release plan describes the communications requirements and includes the following: the information to be communicated, the audiences, the dissemination methods, the frequency of the communications, and the requirements for developing and managing a feedback mechanism that employees can use to voice questions and concerns.

Documenting the Release Process
Documenting the release process allows the release manager to track the project status, provide timely and accurate release status reports to executive management and all parties affected by the release, assess the effectiveness of the release process at the project's conclusion, and evaluate the release preparation and implementation activities. This evaluation educates the team about ways to streamline and facilitate the process for future releases.

User Acceptance Testing
User acceptance testing ensures that release packages are "production ready" before they are implemented in the live environment by verifying that the release can meet user and business needs successfully. The test coordinator develops a detailed test plan. This plan should contain metrics to be used in evaluating the required operating characteristics of the release. Guidelines should be established for keeping the test environment separate from the live environment. Also, requirements should be outlined for configuring the test environment as closely as possible to the live environment (that is, the hardware platform, software versions, operating system, and so on).

Pilot Staging
Pilot staging permits testing of the release in the live environment with a limited number of users who represent the actual user population. The rollout coordinator develops a detailed pilot plan that outlines:

The rollout coordinator makes the plan available to all affected group(s) within the organization. The plan includes pilot goals such as:

Planning the release implementation in the live environment is the task of the rollout coordinator. This release plan section gives an overview of the release implementation activity, including the rollout type (parallel, phased, and so on) and the timeframe. It also outlines the backout procedures to be followed in the event of a system failure.

Plan Approval
Implementing a release in the live environment involves risks to the availability and reliability of that environment. Therefore, appropriate IT and user community leadership must approve the release plan before the release process can begin. Management must carefully evaluate the decision to implement a release. They must fully understand how business operations can be initially affected by the release. This includes understanding the release objectives, the risks associated with release implementation, the release process timeframe, and the required resources. The release plan outlines each of these topics in detail and thus provides management with sufficient information upon which to base their decision.

Plan Revisions
If IT and user community leadership fail to approve the release plan, the release manager must modify the plan based on the input and concerns regarding the project. For example, management may not grant approval if the project risks are deemed to be too great to the organization. In this case, the mitigation strategies must be improved and refined before approval is granted. Other issues may involve the scope of the release, its schedule, and the resources required for it. The release manager must ensure that all issues are resolved and provide explanations that satisfy management before the release process begins.

[To top of Page]

Testing Plan

Thorough testing requires careful planning. The test coordinator is responsible for developing a comprehensive test plan that includes: scope and objectives, schedule, risks, test scripts, documentation requirements, resource requirements, and problem resolution. The following sections describe each of these topics.

Scope and Objectives
This section of the plan describes what will and will not be covered in the testing activity. This should include an itemized list of all Configuration Items (CIs) to be modified according to the Test Plan and should be derived from the Scope List itemized in the Release Plan (Section 10.3). It places the emphasis on testing areas where potential problems pose the greatest risk to the organization or have the greatest probability of occurring. As the testing team develops test scripts and gains a better understanding of the time required to perform them, it will further refine the testing scope. The objectives section should clearly state the testing objectives so that users performing the test scripts easily understand what the testing is intended to accomplish. Clear and meaningful objectives also help users appreciate the importance of the service they are providing by performing test scripts.

Schedule
A schedule including all of the tests listed in the test scripts section of the test plan should be drafted that shows when each test will be performed and who will perform it. If the test environment is being used for more then one purpose, the schedule can help testers coordinate availability with other release testing teams.

Risks
As with any complete plan, it is important to identify risks that may adversely affect a project's successful completion in order to be able to prepare mitigation strategies. Some potential risks include:

Test Scripts
A test script is a detailed procedure that fully tests a release feature. User acceptance test scripts should be designed to test operational inefficiencies, interoperability difficulties, knowledge of the new technology (if it is changing), and the release itself. Scriptwriters should understand the new business functions or technology being tested.

Designing test scripts is a time-consuming task. Although it may be tempting to take shortcuts, the time spent designing test scripts pays off in the long run. Test scripts include information such as the following:

Test scripts must be designed to realistically represent the conditions and variations in the live environment if they are to accurately reflect how a release will execute. In many cases, time and environmental constraints do not permit complete testing of the system. Focus should be placed on areas having the greatest risk.

Documentation Requirements
Develop a tracking system to record test results. Tracking test results helps the test coordinator monitor testing progress and the success rate of tests. Include information such as:

Resource Requirements
The test plan should itemize the types of resources required to support testing. These resources include: hardware and software, databases, personnel, training, and monitoring tools. Work with the organization's configuration manager to establish a hardware and software configuration in the test environment that mirror, as closely as possible, the live environment configuration. Also include in the required resources list the database requirements that need to be set up for application testing and the production data to populate the databases.

This section outlines the number of testers needed and the skill level(s) required to perform the test scripts. The test coordinator should include user and support personnel and avoid using application development personnel. Identify any training that the testers need to understand the technology they are testing and coordinate this training with the training manager. Specify all tools required for the testing activity, such as tools needed to track the test results, detect errors, and monitor the test environment.

Problem Resolution
The test coordinator is responsible for reviewing all tests and evaluating how to handle failures. This individual also ensures that all failures are properly reported to the release manager, who is responsible for coordinating the correction of identified problems with release team members and development personnel.

[To top of Page]

Criteria to Determine Amount of Testing Required

There is a balance between testing effort and the degree of quality. The choice should be a business decision, based on optimizing benefit. There is no right answer. The manufacturers of a quality product will want to invest more time in testing than the suppliers of a cheap commodity product. A life-critical system, such as an aircraft, will warrant greater confidence levels than a non-critical application such as a typing tutor program.

Use this chart as a guide for determining what test scripting will be required for your particular User Acceptance Test Plan. If the application changes to be tested fall in more than one criterion then multiple test script types may be required.

Application Criteria-Test Criteria
New Application - (not replacing an existing application)
The Application Manager developing the User Acceptance Test Plan should be as involved as possible in the design and reviews of the new application with the contractor. The User Acceptance Test Plan should be developed with communication from the contractor and with as much information gathered through the system documentation as possible.

New Application - (replacing an existing application)
The Test Plan should be developed using the required aspects of the system that is being replaced. Test scripts for any enhancements to the new (replacement system) should be developed as if the application is a new application - basing information of requirement and design documents. Running a parallel test with the old system, and comparing critical report results would be the optimal test scenario for any functionality that is to be duplicated in the new system.

Database Change - (no other change to the application)
(e.g. upgrade from Oracle 7.3 to Oracle 8.05)
In this case running a parallel test with the system using the old database and the system using the new database is advised. Comparing critical report results would be the optimal test scenario to ensure that the new application database and drivers are producing identical results to the old system. Performance testing should be included in these test criteria. Create a User Acceptance Test Plan to manage the parallel test.

Application Enhancements - (the existing application is enhanced with new functionality)
Form-based test scripts should be developed for any forms that are being added to the existing application to ensure that each of the new forms is behaving correctly and is meeting the requirements. Business process test scripts should be developed and tested to ensure that the new functionality is integrated with the existing application correctly, and to ensure that no existing functionality has been lost in the enhancement process. Test scripts should be developed based on the specific requirements for any new reports. In this case, unchanged forms may not require testing. E.g. if they are not involved in any business processes which have been changed.

Application Enhancement - (the existing application is being enhanced to change the existing functionality)
New form-based test scripts should be developed based on the requirements documents to ensure that the application meets its enhanced requirements. Existing test scripts can be amended in this case. Business process test scripts should be developed and tested to ensure that the enhanced functionality is integrated with the existing application correctly, and to ensure that no existing functionality has been lost in the enhancement process. Test scripts should be developed based on the specific requirements for any enhanced reports. In this scenario, any form that has been changed, or is affected by a change, new data or new functionality should be tested to assure that existing functionality is not lost. This will ensure that the new requirements are being met. Infrastructure Change - (the application is not changing but a test is required to port it to a new environment, new server, or the application be being utilized for a new division or purpose).-In this case, a full regression test of the form-based test scripts and all business processes should be repeated as new environments can create unexpected problems for an existing application.

[To top of Page]


Visit my web site