CDC UNIFIED PROCESS PRACTICES GUIDE



Similar documents
CDC UNIFIED PROCESS PRACTICES GUIDE

CDC UNIFIED PROCESS PRACTICES GUIDE

CDC UNIFIED PROCESS PRACTICES GUIDE

ROI CASE STUDY MICROSOFT VISUAL STUDIO TEAM SYSTEM SOCIAL NETWORKING WEB SITE

CDC UNIFIED PROCESS PRACTICES GUIDE

SA Tool Kit release life cycle

An introduction to the benefits of Application Lifecycle Management

From Chaos to Clarity: Embedding Security into the SDLC

Copyright 1

Requirements Elaboration

Information Systems Development Process (Software Development Life Cycle)

Introducing Agility into a Phase Gate Process

Driving Your Business Forward with Application Life-cycle Management (ALM)

VAIL-Plant Asset Integrity Management System. Software Development Process

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

Key Benefits of Microsoft Visual Studio Team System

Defining Quality Workbook. <Program/Project/Work Name> Quality Definition

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

How To Write An Slcm Project Plan

PARCC TECHNOLOGY ARCHITECTURE ARCHITECTURAL PRINCIPLES AND CONSTRAINTS SUMMARY

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Practice Overview. REQUIREMENTS DEFINITION Issue Date: <mm/dd/yyyy> Revision Date: <mm/dd/yyyy>

Software Testing Lifecycle

SOFTWARE DEVELOPMENT PLAN

The most suitable system methodology for the proposed system is drawn out.

Netspective Software Development Process

JOURNAL OF OBJECT TECHNOLOGY

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Appendix 2-A. Application and System Development Requirements

Product Build. ProPath. Office of Information and Technology

Effective Team Development Using Microsoft Visual Studio Team System

Bringing Value to the Organization with Performance Testing

Simplify Your Windows Server Migration

The Rap on RUP : An Introduction to the Rational Unified Process

TIBCO Spotfire and S+ Product Family

INFORMATION TECHNOLOGY PROJECT EXECUTION MODEL GUIDE FOR SMALL AND MEDIUM PROJECTS

Implementing Unicenter Desktop and Server Management (DSM) r11.1 with Microsoft SQL Server Clusters

Design Document Version 0.0

Microsoft Solutions for Security. Delivering the Windows Server 2003 Security Guide

Program Lifecycle Methodology Version 1.7

Testing in a Mobile World

Developing ASP.NET MVC 4 Web Applications

Requirements Management In Action. A beginners guide to Requirements Management

Basic Unified Process: A Process for Small and Agile Projects

Benefits of Test Automation for Agile Testing

Information Technology Policy

Global Software Change Management for PVCS Version Manager

Smarter Balanced Assessment Consortium. Recommendation

Carahsoft End-User Computing Solutions Services

Software Engineering. Session 3 Main Theme Requirements Definition & Management Processes and Tools Dr. Jean-Claude Franchitti

Why you need an Automated Asset Management Solution

How do you manage the growing complexity of software development? Is your software development organization as responsive to your business needs as

Software Life Cycle Processes

IPLocks Vulnerability Assessment: A Database Assessment Solution

Custom Software Development Approach

How To Test For Performance

Ten questions to ask when evaluating SAP change management solutions

To introduce software process models To describe three generic process models and when they may be used

Best Practices for Building Mobile Web

4.12 System Development

Software Development Process

Software Development Process

Optimos Enterprise Helpdesk Automation Solution Case Study

Minimizing code defects to improve software quality and lower development costs.

Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led

CUT COSTS, NOT PROJECTS

Systems Development Life Cycle (SDLC)

Enhance visibility into and control over software projects IBM Rational change and release management software

Contents. Introduction... 1

Software Process Training

Magento Enterprise Edition Technical Support Guide

INTRODUCTION: Plan and Schedule Development Create a Work Breakdown Structure (WBS) The detailed guidelines and examples start on the following page.

Cost effective methods of test environment management. Prabhu Meruga Director - Solution Engineering 16 th July SCQAA Irvine, CA

The role of integrated requirements management in software delivery.

Building CHAOS: an Operating System for Livermore Linux Clusters

Microsoft Training and Certification Guide. Current as of March 16, 2015

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013

Developing ASP.NET MVC 4 Web Applications MOC 20486

Software Engineering for LabVIEW Applications. Elijah Kerry LabVIEW Product Manager

Office of Audits and Evaluations Report No. AUD The FDIC s Controls over Business Unit- Led Application Development Activities

Reaching CMM Levels 2 and 3 with the Rational Unified Process

Open Source Voting Systems

Using the Agile Methodology to Mitigate the Risks of Highly Adaptive Projects

Solving the Software Quality Challenges of Agile Development

Promotion Model. CVS SUITE QUICK GUIDE 2009 Build 3701 February March Hare Software Ltd

CONFIGURATION MANAGEMENT BEST-PRACTICE RECOMMENDATIONS. Sun Services White Paper May Abstract

A Near Zero-Defect Approach to Software Development

Software Process and Models

Standards for Developing and Implementing Administrative Systems at UC Davis

Chapter 11, Testing, Part 2: Integration and System Testing

Migration from SharePoint 2007 to SharePoint 2010

ITRM Guideline CPM Date: January 23, 2006 SECTION 4 - PROJECT EXECUTION AND CONTROL PHASE

Transcription:

Purpose The purpose of this document is to provide guidance on the practice of Release Strategy and to describe the practice overview, requirements, best practices, activities, and key terms related to these requirements. In addition, templates relevant to this practice are provided at the end of this guide. Practice Overview System development decisions often have deep strategic, business, and cost implications. If not planned correctly ramifications of incorrect decisions may be felt long after the decisions have been made. On the periphery of system development one very important aspect addressing this issue may often be under emphasized or overlooked all together. This is the implementation, execution, and management of an effective software release strategy. This becomes exponentially important when building a custom application because of the many challenges facing development teams: Managing development activities Managing integration of new development into the existing application Managing application dependencies Managing new feature/function requests Managing compliance with departmental/federal regulations, mandates, and processes Managing security requirements (vulnerability assessment testing [VA]) To illustrate how complex a development environment can be, and how important an effective release strategy is, consider the following example. A development team is building a custom application and might be required to release a major new feature or function multiple times a year to meet the demand of its clients. This environment is further complicated by the management of defects, issues, risks, change requests, etc. resulting in the distribution of multiple minor patch or emergency releases. The team uses an iterative approach to development and performs a test build at least once a day. Additionally, the application may have dependencies and interdependencies on other applications. Managing software in this type of environment is often done using a source control management software application (Microsoft s Visual Source Safe [Visual Studio], IBM s Rational Clear Case, Borland s StarTeam, CVS, etc). Deciding to release an application is often a tradeoff between early release and deferred release. Each alternative has its own sets of pros and cons that must be weighed against each other to determine maximum value for stakeholders. For example, rushing delivery benefits stakeholders with earlier release. However, this may require reducing functionality and may decrease overall quality. As a result, future costs may rise in order to fix bugs and distribute patches. Deferring a release allows time for enhanced functionality and improved quality. However, this approach may incur additional development cost and may result in missed opportunities. Release Strategy It is sometimes difficult to accurately determine the most appropriate product release date, feature functionality, associated development costs, quality concerns, etc are all challenges needing to be considered. Proper development and implementation of a release strategy may alleviate some of these and other challenges related to scope management, quality management, communications, risk management, etc. A formal release strategy makes distributing software easier and more consistent for the performing organization and also outlines how and when product will be made available to the client. A release strategy may include information on topics such as: Producing the software - Activities that outline how the product will be designed, developed, and built, defining items such as o Development approach (Iterative, waterfall, spiral, etc) o Functionality defined for each planned release o Operating systems supported UP Version: 12/31/07 Page 1 of 5

o Programming languages used o Requirements around application hosting, security, etc Testing the software - Activities that outline how the product will be tested, defining items such as: o Quality measurements used (bug counts, performance, user feedback, etc) o Quality requirements and acceptable tolerances o Testing approach (automated, beta, sampling, etc) Documentation - Activities that outline how the product will be documented, defining items such as: o Product guides o Release notes o Training material Packaging, distributing, and installing the software - Activities that outline how the product will be packaged and distributed, defining items such as: o Box package distribution approach o Electronic distribution approaches o CD distribution/copying authorities and guidelines Migrating data Hosting the software o Requirements for internally facing systems regarding hardware, software, security, etc. o Requirements for externally facing systems regarding hardware, software, security, etc. Providing training to end-users Release Management Release management approaches may vary from organization to organization. However, regardless of which approach is used a best practice approach to release management is comprised of activities that effectively manage the planning, organization, development, testing, and implementation of new features and functions, defects, change requests, etc. into the application being developed. Some of the stages that a software release may go through as it works through the release process may include: Pre-Alpha - A pre-alpha release does not necessarily contain completed feature/function. This is often an interim product build, prior to testing, often to validate a particular piece of work or that development to this point hasn t broken the build process. Alpha - An alpha release does not necessarily contain all completed features/functions but does satisfy release requirements. An alpha release is often the first internal product build delivered to the testing group. It is often a preliminary build that is only partially complete and typically contains temporary code, comments, product breaks, etc. Beta - A beta release is the first product version released outside the performing organization for the purposes of real-world testing. A beta release includes all features/functions but often still contains known issues and bugs. Release Candidate - A release candidate contains all completed features/functions and is a product version that has the potential to be a final product. A release is called code complete when it is agreed that no additional new source code will be added to the release. However, there may still be changes to fix defects. General Availability (Gold) - A general availability release is the final version of a particular product. A gold release is stable and relatively bug-free with a quality exceeding the client s expectations. Release Numbering Software release numbering may appear trivial but is critical to the overall success of any effective release strategy. The illustration below from IBM s documentation on enterprise software release management provides an example of a standard for numbering and naming releases that is flexible enough to handle most software delivery situations and can be modified if needed to apply to almost any project. UP Version: 12/31/07 Page 2 of 5

[Major Feature/Function/Release] [Maintenance Release] [Build Number] 07.02.00.05.000 [Minor Feature/Function/Release] [Patch Number] Release decisions are ultimately affected by how much testing is needed to verify that both functional and non-functional requirements have been correctly built into the system and quality, as defined by project stakeholders, has been met. How much testing is needed depends on the level of difficulty to verify requirements and quality (testing/verification). The optimal level is difficult, if not impossible, to find. In practice, cost and time will constrain this activity to a level that the performing organization can tolerate. A release checklist is one approach that can help identify when a product is ready for release that can be used to help the project team identify when the product is ready for release to the client. This type of checklist also enables the project team to validate client requirements and expectations and can be used as a communication vehicle to validate this for the client as well. The process for creating a release checklist may include items such as: Product Defects Quantify an amount of defects that the client finds acceptable. Obviously, the optimal level of defects would be zero. However, in practice, achieving zero defects would be extremely cost and time prohibitive. Constrained by cost and time, a reasonable level of quality should be identified and agreed upon by stakeholders. Coding Errors If errors in code are discovered resolve them before continuing development. The cost of correcting errors increases exponentially as the project matures. For example, to correct a requirement error in the operation stage could cost a multiple of 100-times or more than if that same error was fixed earlier in the project s life. Product Documentation Documentation should be a reflection of the code. Clarity, completeness, and consistency are better achieved if the individuals who developed the product also create the documentation. Some of the individuals involved in a typical release process may include: Software Architects are responsible for capturing and understand the physical execution environment of the system and related issues. Designers are responsible for understand the distribution of processing and data in the system. System Managers are responsible for understanding the physical environment in which the system executes. Project Manager is responsible for estimating costs and schedules and for monitoring and controlling project activities. Configuration Manager is responsible for the assembly of product builds and releases and for maintaining the organization of development units, history, and access to product files. The ultimate decision on determining if a product release is ready for distribution should be made based on an objective analysis of factors such as: Completeness Completion of milestones/deliverables that deliver functionality required by the client. Performance Product performance and server load is within acceptable margins defined in the requirements gathering and design phases of the project. Defects Defects have been reduced to a level acceptable by the client. Security Compliance with Certification and Accreditation (C&A) requirements. UP Version: 12/31/07 Page 3 of 5

Sign-off Final sign-off by the appropriate stakeholders and/or authorizing individuals (such as OCISO) to confirm that all product expectations have been met and that the product is officially approved for general release. A sign-off checklist may include items such as: o Annotate the correct release number as defined by an agreed upon standard o Confirm legal, license, and copyright elements o Remove any testing and debugging code o Check that documentation is complete and up to date o Ensure compliance with regulations and mandates Best Practices The following best practices are recommended for Release Strategy: Release Numbering - Use a standard for numbering and naming releases that is flexible enough to handle the organizations delivery situations Checklist - Use of a release checklist can be used to help the project team identify when the product is ready for release to the client Validate - Validate client requirements/expectations are built into the release. This is an activity that should be performed throughout the entire project life cycle to avoid errors and rework Documentation - Documentation should be a reflection of the code. Software - Release management can become extremely complex almost always requiring a source control management system application to control effectively. Assessment - Allow adequate time throughout the release cycle/schedule to perform any necessary assessments and validations for the product to be certified for release. Compliance - Allow adequate time throughout the release cycle/schedule to perform any actions required to comply with Federal and departmental regulations and mandates. Authority to Operate - After completing any assessments and compliance related items obtain formal sign-off validating authorization to operate (ATO) Practice Activities For software development projects the following practice activities are appropriate: Stakeholders - Identify and communicate with application stakeholder. This should include the project team, sponsors, and clients, as well as other areas such as Office of the Chief Information Security Officer (OCISO), Capital Planning and Investment Control (CPIC), Enterprise Architecture (EA), Security, Information Technology Services Office (ITSO), Mid Tier Data Center (MTDC), etc. Plan Early - Plan enough time to comply with processes and regulations. For example, moving an application into MTDC may require hundreds of effort hours to ensure compliance with hosting requirements and to allow MTDC staff enough time to prepare an environment for the application. Guidelines - Outline how and when the product will be available to the client. Include information that defines development and testing processes, documentation, packaging, distribution, installation, data migration, training, etc. Configuration Management - Define the organizations configuration management approach. Strategy - Define a release strategy for the organization which may include definitions for prealpha, alpha, beta, candidate, and gold releases. Numbering - Define a release numbering approach that meets the needs of the organization and product being developed. Source Control System - Product source code is often controlled using a source control management system to assist in managing different version of product code (Microsoft s Visual Source Safe [Visual Studio], IBM s Rational Clear Case, Borland s StarTeam, CVS, etc). Checklist - Outline a release checklist to help identify when a product is ready for release. UP Version: 12/31/07 Page 4 of 5

Practice Attributes This section provides a list of practice attributes to help project teams determine when and how Release Strategy impacts a project. Practice Owner Criteria Estimated Level of Effort Prerequisites Practice Dependencies Practice Timing in Project Life Cycle Templates/Tools Additional Information CDC UP Project Office NCPHI All system development projects regardless of size should document a release strategy and how product releases are performed and managed through the system life cycle. Significant Requirements analysis Requirements Management Practices Guide Design Practices Guide Release strategy is often defined by the organization and applied to the system development process. However, if a release strategy is not already in place it needs to be completely defined before any work begins. This is done in the very early stages of a system development process because more often than not requirements are linked to development code for the purpose of traceability. Release Strategy Checklist, Application Hosting Process Guide, Certification & Accreditation (C&A) Practices Guide, Enterprise Architecture (EA) Practices Guide, Operations Designated Server Site (DSS) Process Guide, Operations Mid Tier Data Center (MTDC) Process Guide, Privacy Impact Assessment (PIA) Process Guide, Secure Data Network Process Guides, Section 508 Process Guide List of Revision Control Software Applications http://en.wikipedia.org/wiki/list_of_revision_control_software Key Terms Follow the link below to for definitions of project management terms and acronyms used in this document. http://www2.cdc.gov/cdcup/library/other/help.htm Related Templates/Tools Below is a list of template(s) related to this practice. Follow the link below to download the document(s). http://www2.cdc.gov/cdcup/library/matrix/default.htm Release Strategy Checklist UP Version: 12/31/07 Page 5 of 5