Article Preview
TopIntroduction
Software process improvement (SPI) has been the subject of many scientific undertakings during the last decades. SPI is not a simple, one-time activity. Changing an organizational structure and its rules and processes has tremendous impact on that organization. During each process improvement effort, several aspects play a role, such as the organizational culture, technical support, and human capabilities (Basili & Green, 1994; Shih & Huang, 2010). Because requirements for SPI efforts are often incomplete, contradictory, ever-changing, and difficult to recognize, and because there is no perfect solution that fulfills all requirements, we can classify SPI as a wicked problem (Churchman, 1967).
Recent SPI literature shows appropriate attention for the wicked nature of SPI. Software engineers have been working with different process improvement models such as CMM (Paulk & Curtis, 1993), SPICE (Dorling, 1993) and the more bottom-up approach Quality Improvement Paradigm (QIP) (Basili, 1993). Unfortunately, lack of resources, time pressure, and the difficult nature of change often prevent successful process improvement efforts (Baddoo, 2003).
One key success factor that is mentioned in many studies is the need for iterative and incremental improvement. A systematic literature review revealed that process improvement programs need to be guided in “an iterative and incremental approach (…) that allows a continuous adoption of improvement practices” (Pino, García, & Piattini, 2007). In addition, Sawyer, Sommerville, and Viller (1997) state that process improvement should not be seen as a one-step process, but as a sequence of several improvement cycles in which good practice can be introduced in the organization. An advantage of incremental improvement as opposed to revolutionary improvement is that it is a fundamental way to reduce risk on complex improvement projects (Krzanik & Jouni, 2002).
From a knowledge management perspective, incremental improvement has specific advantages as well. Experience suggests that “companies can institutionalize incremental improvement (…) with those doing the work identifying and implementing small changes in product and process” (Davenport, 1993). Furthermore, the introduction of knowledge management in the software development domain led to the new area of experience based process improvement (Sharma, Singh, & Goyal, 2010, 2011). In this approach knowledge that is created during software processes can be captured, stored, disseminated, and reused, so that better quality and productivity can be achieved (Sharma et al., 2010).
Research during the past decade has shown a need for process improvement support that takes the situation of the organization into account, enables incremental implementation of improvements, and that pragmatically leverages existing knowledge and experience (Pino et al., 2007; Sulayman, Urquhart, Mendes, & Seidel, 2012). Unfortunately, although experience management is gaining interest and there is increasing support for building knowledge bases (García, Amescua, Sánchez, & Bermón, 2011), there is no proof that current method bases and knowledge infrastructures are effective. Practitioners do not always know exactly what they are looking for, or how to apply a formal method description to the processes of their organization (Niazi, 2011).
During the past years, we have designed an approach to process improvement that addresses the issues of evolutionary improvement, situationality, and knowledge dissemination. This has resulted in the design of the Online Method Engine (OME); a knowledge management tool for incremental SPI. The OME is based upon various other research projects. The design process of the OME can be described in terms of the Systems Development Research Process (SDRP) by Nunamaker Jr., Chen, and Purdin (1990) (Figure 1).
Figure 1. Systems development research process