ProPAM: SPI based on Process and Project Alignment Paula Ventura Martins INESC-ID, CSI/Universidade do Algarve Campus de Gambelas 8005-139 Faro, Portugal tel: +351 289 800 905 fax: +351 289 800 066 pventura@ualg.pt Alberto Rodrigues da Silva INESC-ID /Instituto Superior Técnico Rua Alves Redol, nº 9 1000-029 Lisboa, Portugal tel: + 351 213 100 307 fax: +351 213 145 843 alberto.silva@acm.org ABSTRACT Software Process Improvement is one of the main software development challenges. Unfortunately, process descriptions generally do not correspond to the processes actually performed during software development projects. They just represent high-level plans and do not contain the information necessary in a software project. This lack of alignment between the process and project is caused by processes that are unrelated to project activities and failure in detecting project changes to improve the process. Process and project alignment is essential to really find out how process management is important to achieve an organization’s strategic objectives. Considering this alignment, this paper presents a software process improvement methodology designed by Process and Project Alignment Methodology (ProPAM). 1. INTRODUCTION Organizational software process improvement (SPI) is a challenge to organizations to continually improve the quality and productivity of software and to keep up their competitiveness [1]. However, there has been limited success for many SPI efforts. Recent reports concluded that 70% of organizations attempting to adopt the CMM (Capability Maturity Model) failed in achieving the intended goals [2]. Although organizations try to define their process improvement program and get a certification in traditional SPI approaches (e.g. CMM [3], CMMI [4], SPICE [5], and Bootstrap [6]), there is a consensus that software development environments are changing constantly and team members have no obligation to sustain original SPI activities in face of difficulties. The agile software development manifesto contains a principle that supports this idea: “at regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly” [7]. Process modeling community in general base the research work on the assumption that an explicit process representation is the starting point for process understanding, improvement and communication, project teams are communicating in terms of budget overruns, patches for bug fixes and transaction monitors [8]. Other research communities, like the ones that study computer supported co-operative work (CSCW), argue that software development is a creative work with strong co-operation aspects and does not benefit from static process descriptions. So, process information must be combined dynamically with project specific information to create a detailed plan that includes information from all process disciplines with cost, schedule and quality requirements. Since project management is the discipline that controls and monitors deviations from the original project plan and also controls all of the activities from other process disciplines, it is the best way to detect changes in the project that can improve the process. Considering the dependency between project plan and process elements, new SPI approaches have to consider process and project alignment and iterative SPI performed by project team members. Process and project alignment is defined as the degree to which the project goals and plans support and are supported by the process practices. Moreover, it involves a real match between process practices and projects activities, products and actors. However, several modifications in a project can cause misalignments with the development process. These modifications can be management innovations or changes in the way the activities are executed. Furthermore, a modification may regard not only the considered activity, product or actor but it can also affect other elements having a dependence relation with the modified one. The contribution of this paper is to define not only the process, but also to propose a mechanism to process evolution based on the changing needs of the development organization. This paper proposes a methodology - Process and Project Alignment Methodology (ProPAM) - based on process and project alignment to be applied during SPI projects for detecting misalignment between projects and supporting processes and identifying the process elements to be changed for restoring the alignment. This paper is organized in the following sections. Section 2 discusses literature on software process modeling, process and project management alignment and traditional and agile approaches to SPI and. Section 3 and 4 presents the