Presentation: Reuse-driven Process Improvement
Goals. The goal of this tutorial is to present a systematic process improvement method that organizations can follow to adopt a product line approach to software development. Starting with an organization's business objectives and technical expertise, this method helps adopters evaluate the viability of a product line approach, improve process and reuse maturity to an acceptable level, target a beneficial and cost-effective level of reuse capability, and implement a strategy for instituting corresponding product line practices.
Intended audience. This tutorial is targeted to experienced engineers and managers whose organizations repeatedly build similar products and want to achieve substantial improvements in software productivity and product quality. Tutorial attendees should be familiar with the principles and use of a conventional process improvement method such as the SEI Capability Maturity Model approach.
Motivation. Domain-specific Engineering (DsE) is a leading methodology, based on the concept of product families, for systematic reuse in software product lines. To apply DsE, organizations need a systematic approach to adopting and improving a DsE process. This tutorial presents the Reuse-driven Process Improvement (PIr) method which was created for this purpose. Although conceived specifically as an enabler of DsE, the PIr process and tools provide a systematic framework that can aid transition to any product line approach. Originally based on the Software Productivity Consortium Reuse Adoption method, PIr has been refined based on experience with a leading corporate reuse initiative.
The goal of PIr is to account for issues that are specific to instituting reuse in a way that complements and reinforces the aims and actions of an organizations existing or planned process improvement efforts. PIr is specifically designed to encompass and augment a generic process improvement method such as that of the Software Engineering Institute's Capability Maturity Model. A product line organization, having targeted a market consisting of customers needing a line of similar products, institutes a DsE process as a way to achieve substantial improvements in productivity and product quality for these products. They apply PIr in order to systematize and smooth their transition to a DsE process and its resulting benefits.
PIr differs from generic approaches to process improvement (PI) in that:
- Reuse, as a means to improving productivity and product quality, is a key driver of the improvement effort.
- The scope of the improvement effort is necessarily limited to a single product line business organization.
- Changing the fundamental structure of the software process, based on domain-specific considerations, is a primary means for achieving productivity improvements.
PIr is motivated by four objectives. Together these objectives define an essential foundation for any product line approach to software engineering:
- Engineering discipline (being able to predictably produce products having needed capabilities and properties)
- Product line market focus (being able to focus organizational resources on a coherent market needing a set of similar products)
- Manufacturing discipline (being able to optimize the time, effort, and resources required to produce a product)
- Domain-specific Engineering (being able to leverage organizational product line knowledge and expertise in the creation of similar products)
These objectives are achieved with the aid of five tools defined by detailed guidelines and procedures. These tools are based on and were refined through extensive industrial experience:
- Domain Viability, supporting the product line market focus objective, applies criteria for whether a product line business will benefit from a DsE approach to software development.
- Process Maturity, supporting the engineering discipline objective, is defined by a preferred PI method with particular Key Process Areas further elaborated to address associated reuse issues.
- Reuse Maturity, also supporting the engineering discipline objective, identifies concerns that are critical in instituting systematic reuse but outside the proper scope of the chosen PI method.
- Reuse Capability, supporting the manufacturing discipline objective, provides criteria that guides tailoring a DsE process to suit an organization's specific market needs and technical capabilities.
- Product Line Strategy, supporting the Domain-specific Engineering objective, guides deriving an approach specific to an organization's business objectives and market for instituting an effective product line approach (a product line strategy comprises market/products focus, business model, tailored process model, organizational structure, support environment, and transition strategy).
PIr organizes the use of these tools into a systematic iterative process (Figure 1) consisting of five steps:
- Commit, to justify and obtain the commitment of organizational management to set objectives and allocate resources needed for the PIr effort
- Manage Quality, to guide the product line business organization in improving its engineering practices
- Define Strategy, to establish a sound approach for instituting an appropriate DsE approach
- Initiate Action, to plan and carry out preparatory actions for an effective DsE product line effort
- Perform DsE, to carry out the defined Product Line Strategy and gain the experience and insight needed to further improve this Strategy
Figure 1. The PIr Process