Implementing an Organizational Software Process Improvement Program
Beth Layman · 2005
This article describes in overview the key activities involved in implementing a software engineering process. Since this is such a broad topic, the article will focus primarily on describing the “meta-process ” that allows an organization to create, use, and improve a set of documented processes that guide software development and maintenance activities. Since this metaprocess represents a set of ongoing activities, we will refer to it as a program. The steps we will outline below are complementary to various process improvement paradigms and frameworks such as Deming’s PDCA (Plan-Do-Check-Act), the Software Engineering Institute’s IDEAL model [1], and ISO/IEEE standards (e.g., 9000 series, 12207, 15504). 1. PLANNING FOR PROCESS IMPROVEMENT Process improvement programs are commonly initiated because a software developing organization is encountering problems or issues that have made apparent the need for change. These are typically issues such as customer dissatisfaction, inadequate software quality, inability to deliver on time and within budget, and excessive rework. When the “pain ” these issues cause is felt and understood at all levels of the organization, the impetus for a process improvement program is strong. When process improvement is initiated and sponsored by the highest levels in the organization, this upper management support and involvement bodes well for the program. In some cases, the impetus for process improvement may derive from the need to achieve a customer-required certification or proficiency level. In others, it may spring from little more than a vague desire to “do better. ” In yet other cases, the motivation