SOFTWARE ENGINEERING & ANALYSIS LAB

SOFTWARE PROCESS IMPROVEMENT VOLUME

OF

THE SOFTWARE ENGINEERING PROCESS GUIDEBOOK

Final

February 5, 1997

National Aeronautics and
Space Administration
Langley Research Center
Hampton, VA 23666




4.0 PERFORM PROCESS IMPROVEMENT

Overview

In this activity, the organization capitalizes on experiences from former projects to support on-going projects, and continuously performs process and product improvements. This activity includes:

Defining an organizational software baseline that documents statistical norms for the organization’s products and processes.

Identifying and prioritizing improvement goals.

Identifying lessons learned on past projects.

Identifying needed changes in processes and technologies.

Running controlled experiments to determine what changes and technologies are beneficial.

Providing projects with reusable products and meaningful project metric reports.

Documenting and updating the organization’s standard software process.

Dispositioning requests for deviations from the organizational standards.

Providing organizational training.

Roles and Responsibilities

The software engineering process group (SEPG) performs the following main functions: identifying, testing, and implementing process improvements; maintaining the organizational assets; and defining and providing organizational training.

The SEPG normally consists of experienced project software managers, software developers, software testers, and software quality assurance (QA) and configuration management (CM) personnel. Usually, at least one professional is assigned full time to the SEPG, and the group’s membership consists of 1 to 3 percent of the organization’s software professionals. The SEPG leader (i.e., the SEPG chairperson) must be an experienced and knowledgeable manager with the respect of the project’s professionals and support of top management [Humphrey, 1989, p. 295].

Controls

Organizational goals determining: the overall approach to process improvement, process areas to be focused on, and improvement program goals.

The organization’s standard software process that defines the process improvement activities and products to be produced.

Inputs

Requests for Deviation/Waiver (see Appendix C) from software projects requesting deviations from the organization’s standard software process.

Reusable software products from projects that are within the organization or from other organizations, or that are commercially purchased.

Project metrics submitted by software projects within the organization.

Procedures

The SEPG’s three main functions are: identifying/implementing process improvements, maintaining the organizational assets, and organizational training. The SEPG performs these on-going activities, which are not bounded by project schedules or delivery dates.

1) 4.1 Identify And Test Process Improvements - In this activity, the SEPG determines what process or technology changes should be made in the organization’s standard, based on the high-level organizational goals; by continuously evaluating new processes, methods, and technologies; developing improvement studies to test the proposed changes; testing these changes via pilot projects; and evaluating the results. These experiments and their results are documented in Improvement Study Plans (ISP) (see Appendix E). In addition to these planned changes during a software project’s course, the project software manager may need to deviate from or substantially tailor the organization’s standard software process and, consequently, submits a completed Request for Deviation/Waiver documenting the need to the SEPG for evaluation and approval.

2) 4.2 Maintain The Organization’s Assets - In this activity, information about the organization’s process and products is tracked and maintained. This consists of collecting and storing the organization’s assets (e.g., reusable software products, the organization’s standard software process), determining and maintaining the organization’s software baseline, updating the organization’s products, and providing metric reports to the projects.

3) 4.3 Develop And Supply Organizational Training - In this activity, the organization’s training needs are defined, training materials and methods are developed or identified, and the training is conducted.

Outputs

Reusable software products maintained by the SEPG and made available to software projects and other organizations.

Metric reports documenting the organization’s norms and reports on software projects’ status.

Dispositioned deviations/waivers for software projects seeking to deviate from the organization’s standard software process.

ISPs documenting experiments to be implemented on the organization’s projects, in addition to results and associated recommendations based on the studies.

The organization’s standard software process, which is maintained.