Cover image for Software release methodology
Software release methodology
Bays, Michael E.
Personal Author:
Publication Information:
Upper Saddle River, N.J. : Prentice Hall PTR, [1999]

Physical Description:
viii, 247 pages : illustrations, 1 map ; 25 cm
General Note:
Includes index.
Format :


Call Number
Material Type
Home Location
Item Holds
QA76.76.D47 B39 1999 Adult Non-Fiction Central Closed Stacks

On Order




Author Notes

Michael E. Bays is the relase engineering manager for Cisco Systems' Enterprise Line of Business, based in Silicon Valley, California. He has more than ten years of direct and indirect experience in integration and product release methodologies for a wide range of software-based products, including applications, operating systems, development systems, embedded systems, and networking devices.



Preface Software release methodology is a field that unifies a number of previously abstract endeavors that occur during software product development. By unifying these abstract endeavors, we provide a more efficient, well-understood path from development to product release. The field focuses on the release activity as the driving force behind all development endeavors. Why focus on release? It is my observation that for the majority of software product development efforts, time to market is everything. This is where a company's ability to execute on software releases becomes critical. Successfully balancing a new product's performance and feature set against its release date is an important capability in our industry. Furthermore, additional goals such as quality, reliability, and performance take second place when compared with time to market. Although this seems to contradict the market pundits' demands for unimaginable strides in quality and functionality, it is an unfortunate reality to those faced with the development of successful products in today's industry. Companies rarely have the luxury to get to market on time and successfully implement all these secondary goals in their first release. If a company focuses on these secondary goals as its first priority, it risks not getting to market in time. If it doesn't, the result is that even though the company has a high-quality, technically innovative, reliable product, a more timely competitor has released an adequate solution first, and the market has become accustomed to the earlier product. The effort required to unseat an established competitor and capture an already dominated market is far greater than that needed to release the first acceptable solution and then maintain that initial success. It is indeed rare to capture a market with only the initial release of a product. Release is an iterative, long-term game that must be played in an optimal, organized manner. In support of this time-to-market imperative, software release methodology endeavors to provide a reasonable framework for the development of that first and defining release that captures the market, as well as the future releases that secure a product's long term success. In this book, software release methodology is defined in a commonly applicable format. Because of time-to-market pressure, development teams no longer have the time to continually reinvent the elements of software release. How to organize source control systems? How to track defects? How to know when to release? The answers to these simple questions can take years for a product team to determine, as the answers can be different for each product, and even for each individual product release. The elements that make up software release methodology are as follows: Source code control Builds Defect tracking System integration Release classifications and numbering Release distribution Release services Release management These elements are defined so that their roles, responsibilities, and relationships to the release objectives are well understood. These definitions provide a template that can be customized and localized to suit the specific needs of an individual development effort. Most importantly, the development effort will not need to reinvent them from scratch with every new project that is undertaken. It is my hope that the introduction and definition of this field will aid in efforts to improve and optimize the software development process as a whole. Excerpted from Software Release Methodology by Michael Bays All rights reserved by the original copyright owners. Excerpts are provided for display purposes only and may not be reproduced, reprinted or distributed without the written permission of the publisher.

Table of Contents

Prefacep. vii
1 Introductionp. 1
The Basics of Software Productsp. 1
The Basic Software Development Processp. 3
The Role of Software Integration and Release Methodologyp. 4
2 Nontechnical Primer on Files, Tools, and Sourcep. 7
Files and Directory Hierarchiesp. 7
What is a Tool?p. 11
What is a Source File?p. 11
The Need for Source Code Controlp. 11
The need for File Mergingp. 13
3 Source Code Controlp. 15
Core Set of Source Code Control Actionsp. 15
Source File Management Protocolsp. 21
Branch Managementp. 23
Large-Scale Development Strategiesp. 30
4 Buildsp. 33
Development Environmentsp. 34
Toolsp. 39
Product Buildingp. 41
The Source Treep. 41
The Order of Operations in a Buildp. 42
Build Strategiesp. 43
The Runtime Environmentp. 44
The Developer's Build Environmentp. 44
Build Reproducibilityp. 46
Build Automationp. 47
5 Defect Trackingp. 51
High Level Methods of Defect Trackingp. 51
Basic Elements of Defect Trackingp. 53
The Basic Elements of a Defect Recordp. 56
Additional Elements for Advanced Defect Tracking Systemsp. 61
Additional Uses of the Defect Tracking Systemp. 77
Defect Metricsp. 80
6 Modularized System Integrationp. 87
When Do You Not Need Modularized System Integrationp. 87
Product Modularizationp. 88
System Integration Overviewp. 89
Parallelism in System Integrationp. 94
Major Aspects of the System Integration Cyclep. 96
Build Qualificationp. 101
Coordination for Centralized System Integrationp. 104
Using Computer Applications as Change Control Systemsp. 109
7 Change Controlp. 113
Independent Elements of Change Controlp. 113
Comprehensive Aspects of Code Control in the Development Environmentp. 117
Change Control Boardsp. 122
8 Product Release Classifications and Numberingp. 127
Customer Release Classificationsp. 127
Customer Support for the Releasep. 133
Release Classifications and Release Numberingp. 136
Internal Release Numbersp. 142
Making Customer Release Number Decisionsp. 151
9 Release Distributionp. 153
Media Typesp. 153
Physical Distribution Mediap. 156
Media Masteringp. 163
Network Mediap. 174
Customer Distribution Optionsp. 177
Internal Distribution and Customer Deliverable Prototypingp. 180
Release Note Documentationp. 182
10 Release Engineering Service Strategiesp. 187
What is a Release Methodology?p. 187
Issues With Development Service Groupsp. 187
Size and Complexity Considerationsp. 201
11 Release Management and Planningp. 205
Release Managementp. 205
Dictator Philosophyp. 218
Process Development and Deploymentp. 219
Release Executionp. 226
Indexp. 243