Software Configuration Management
eBook - ePub

Software Configuration Management

Jessica Keyes

Compartir libro
  1. 640 páginas
  2. English
  3. ePUB (apto para móviles)
  4. Disponible en iOS y Android
eBook - ePub

Software Configuration Management

Jessica Keyes

Detalles del libro
Vista previa del libro
Índice
Citas

Información del libro

An effective systems development and design process is far easier to explain than it is to implement. A framework is needed that organizes the life cycle activities that form the process. This framework is Configuration Management (CM). Software Configuration Management discusses the framework from a standards viewpoint, using the original

Preguntas frecuentes

¿Cómo cancelo mi suscripción?
Simplemente, dirígete a la sección ajustes de la cuenta y haz clic en «Cancelar suscripción». Así de sencillo. Después de cancelar tu suscripción, esta permanecerá activa el tiempo restante que hayas pagado. Obtén más información aquí.
¿Cómo descargo los libros?
Por el momento, todos nuestros libros ePub adaptables a dispositivos móviles se pueden descargar a través de la aplicación. La mayor parte de nuestros PDF también se puede descargar y ya estamos trabajando para que el resto también sea descargable. Obtén más información aquí.
¿En qué se diferencian los planes de precios?
Ambos planes te permiten acceder por completo a la biblioteca y a todas las funciones de Perlego. Las únicas diferencias son el precio y el período de suscripción: con el plan anual ahorrarás en torno a un 30 % en comparación con 12 meses de un plan mensual.
¿Qué es Perlego?
Somos un servicio de suscripción de libros de texto en línea que te permite acceder a toda una biblioteca en línea por menos de lo que cuesta un libro al mes. Con más de un millón de libros sobre más de 1000 categorías, ¡tenemos todo lo que necesitas! Obtén más información aquí.
¿Perlego ofrece la función de texto a voz?
Busca el símbolo de lectura en voz alta en tu próximo libro para ver si puedes escucharlo. La herramienta de lectura en voz alta lee el texto en voz alta por ti, resaltando el texto a medida que se lee. Puedes pausarla, acelerarla y ralentizarla. Obtén más información aquí.
¿Es Software Configuration Management un PDF/ePUB en línea?
Sí, puedes acceder a Software Configuration Management de Jessica Keyes en formato PDF o ePUB, así como a otros libros populares de Informatik y Informationstechnologie. Tenemos más de un millón de libros disponibles en nuestro catálogo para que explores.

Información

Año
2004
ISBN
9781135492953
Edición
1
Categoría
Informatik

1
INTRODUCTION TO SOFTWARE CONFIGURATION MANAGEMENT

Software configuration management (SCM, or just plain CM) is an organizational framework—that is, a discipline—for managing the evolution of computer systems throughout all stages of systems development. That a rigorous framework for producing quality computer systems is needed is undeniable according to the following statistics:

More than half (53 percent) of IT projects overrun their schedules and budgets, 31 percent are cancelled, and only 16 percent are completed on time.
Source: Standish Group
Publication date: 2000
Of those projects that failed in 2000, 87 percent went more than 50 percent over budget.
Source: KPMG Information Technology
Publication date: 2000
45 percent of failed projects in 2000 did not produce the expected benefits, and 88 to 92 percent went over schedule.
Source: KPMG Information Technology
Publication date: 2000
Half of new software projects in the United States will go significantly over budget.
Source: META Group
Publication date: 2000
The average cost of a development project for a large company is $2,322,000; for a medium company, it is $1,331,000; and for a small company, it is $434,000.
Source: Standish Group
Publication date: 2000
$81 billion was the estimated cost for cancelled projects in 1995.
Source: Standish Group
Publication date: 1995
More than half (52.7 percent) of projects were projected to cost over 189 percent of their original estimates.
Source: Standish Group
Publication date: 2000
Projects completed by the largest American companies have only approximately 42 percent of the originally proposed features and functions.
88 percent of all U.S. projects are over schedule, over budget, or both.
Source: Standish Group
Publication date: 2000
The average time overrun on projects is 222 percent of original estimates.
Source: Standish Group
Publication date: 2000

During the past decade, the capabilities and sheer innovativeness of software technology has far outpaced our ability to manage the complexity of problems that software development must address. Unfortunately, the ability to develop and deliver reliable, usable software within budget and schedule commitments continues to elude many software organizations.
Software configuration management (SCM) provides the means to manage software processes in a structured, orderly, and productive manner. SCM spans all areas of the software life cycle and impacts all data (see Chapter 10) and processes. Hence, maximum benefit is derived when SCM is viewed as an engineering discipline rather than an art form, which, unfortunately, many developers have a tendency to do.
As an engineering discipline, SCM provides a level of support, control, and service to the organization:


  • Support. SCM is a support function in that it supports program engineers and developers, the program, the corporation, and, in a number of situations, the customer.
  • Control. SCM is a control function in that it controls specifications, documents, drawings, requirements, tools, software, and other deliverables.
  • Service. SCM is a service provider in that it supports people and controls data. The role of the SCM manager is to ensure that (1) SCM personnel are properly trained and have the necessary resources (budget and tools) to do an efficient and effective job; (2) a proper balance of control and support is tailor made to each program that is being supported; and, (3) the SCM function is flexible and can accommodate the changing needs and requirements of the developers, customers, the program, and the company.
The process of SCM has not really changed much during the past 20 to 30 years. However, the environment that SCM operates within has changed significantly and is likely to continue to change. Over the past few decades, we have migrated from centralized mainframes using just a few programming languages such as COBOL and FORTRAN to decentralized, networked, Web-based environments with thousands of devices using hundreds of software packages and dozens of programming languages.
The most significant impacts to SCM have centered on the automated tools and the library systems they operate upon. Up until the 1990s, the entire focus of SCM was on version control with very few vendors from which to choose. Today, there are literally hundreds of small to large SCM vendors promoting a variety of products from simple version control to sophisticated tools that purport to establish and monitor the entire software development and production environment.
Regardless of this amazing diversity, the process of CM is basically immutable—that is, the process does not change, only what is being managed changes. What this means is that CM is as applicable to a mainframe shop as it is to a shop running all Web-based applications in a networked, secured environment. The key is in the process.


SCM AND PROCESS IMPROVEMENT

Improvement depends upon changing current processes along with the accompanying environment. SCM, then, provides the underlying structure for change and process improvement. We refer to this as process-based configuration management.
For example, the first step to improve the product is to know how the product is currently produced. The second step for improvement is to foster an atmosphere in which change can be readily accommodated. If change does not appear possible, then improvement is also unlikely. SCM measurements of current practices and their associated metrics can help identify where processes are working and where they need to be improved. Such change efforts should lead to increased productivity, integrity, conformance, and customer satisfaction.
The Institute of Configuration Management (ICM) defines configuration management (CM) as “the process of managing the full spectrum of an organization’s products, facilities, and processes by managing all requirements, including changes, and assuring that the results conform to those requirements” [ICM 1998]. By this definition, CM can also be called process configuration management because it includes the process of managing an organization’s processes and procedures.
Many organizations can be characterized as Level 1 organizations as defined in the Software Engineering Institute’s Software Capability Maturity Model® (SEI SW-CMM). These Level 1 organizations rely heavily on “heroes” to accomplish the work. The organization’s processes are not documented, and few people know how the work is accomplished. “The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual effort and heroics” [Paulk 1995].
An effective SCM program, when applied to organizational processes, identifies which processes need to be documented. Any changes to those processes are also tracked and documented. Adhering to these processes will reduce an organization’s dependence on heroics for the work to be accomplished and the project to succeed. It also relieves the frustration and problems that arise if one of the “heroes” is not available to perform a task.
SCM is an essential discipline in the everyday activities of defining requirements, designing, writing, compiling, testing, and documenting the software. SCM is not simply version control or format control. It is not a clerical “after-the-fact” function. It is a technical field of expertise with formal practices.
The benefits derived from SCM are directly proportional to the extent that SCM is implemented. The primary objective is to deliver a quality product that meets the stated requirements, on schedule, and within budget. An effective SCM program supports this objective by tracking each requirement from concept through implementation to customer delivery.


MEASUREMENTS AND METRICS

The status accounting aspect of SCM provides management visibility into the state of software products. Status accounting data includes measurements (see Chapter 13) that can show the location of bottlenecks in the software development process, and can indicate the maturity of the software products.
Hermann [1998] describes the use of software changes to measure product maturity and readiness to deliver the software. He goes on to mention other metrics that may be useful, including average severity, severity level distribution, average closure time, charts for each severity level, and charts for each configuration item or sub-system.
A measure can be defined as “a standard of measurement, the extent, dimensions, capacity, etc, of anything, especially as determined by a standard, an act or process of measuring, a result of measurement” [Starrett 1998]. Examples of a measure include the number of defects found in a release or the number of source lines of code delivered. A metric can be defined as “a calculated or composite indicator based on two or more measures, or a quantified measure of the degree to which a system, component, or process possesses a given attribute. An example of a metric is defects per thousand source lines of code” [Starrett 1998].
A metric can also be “a composite of measures that yields systematic insight into the state of processes or products and drives appropriate actions” [Pitts 1997]. Measures (measurements) and metrics can be used to identify areas of the process that require attention. These areas are identified through compiling measurements into metrics. Measurements are compiled in an electronic spreadsheet, a database, or by hand. There are also several management tools that allow collection of measurements and derivation of metrics. The format is not the issue; the data is.
A metrics program should include the following fundamentals [Pitts 1997]:

  • A motive that is compelling, not simply conformism
  • Benchmarks that define nominal operation of the software development process
  • Goals that define the purpose of the metrics program
  • Strategy for achieving the goals
  • An appropriate model (COCOMO, SLIM, etc.), whether it is a mathematical model or heuristic
  • Collection of data that is unobtrusive
  • Analysis of the data to find patterns: patterns imply consistency and consistency implies process
  • Action on the an...

Índice