Enabling software process improvement : an investigation of the importance of organizational issues
MetadataVis full innførsel
Software development and maintenance involves oraganizational as well as technical issues. While software engineering has been offtered as a way of resolving the intrinsic technical problems, the organizational problems need another approach. Still, the typical response to the persistent problems in software development has been to apply even more rigorously the principles of engineering. Organizational issues are often ignored or not properly adressed in much of the recent literature, with only a handfull of studies being reported. To help fill this gap, this doctoral study was initiated to explore the relative importance of organizational issues in software process improvement. The position taken is strongly influenced by socio-technical theory with its central conception that organizations are both social and technical systems, and that the core of the software organization is represented through the interface between the technical and human (social) system. The fundamental assumption is that process improvement is a socially constructed learning process and that a commitment to learning rather than to "best practice" models is needed to accomplish improvements in software development. The research presented in this dissertation is based on several empirical studies performed within the context of the European Systems and Software Initiative and the Norwegian software process improvement projects SPIQ and PROFIT. The overall research design for the study was a sequential, mixed method design consisting of two major phases: first, a qualitative model-building phase, then a quantitative model-testing phase. The model-building phase was grounded in prior consulting experience in software development, in observations done in a pilot case study as well as in a multiple case study of twelve orgnisations, and in an extensive literature review. The model - testing phase focused on testing the associations between the key factors for success and the outcome variable by a quantitave survey among 120 software organizations. The findings from the investigations suggest that the key to successful learning is a continuous and simultaneous dialectic between the knowledge that the organization has established over time, and the knowing of the organization's members in their respective contexts. Also, the findings indicate that success depends critically on six organizational factors. Finally, the findings show that there are important differences between small and large software organizatons, specifically in the ways in which they react to unstable and changing stimulus situations. The conclusions on the research problem is that process improvement cannot be managed, but only enabled through the space in which the software organization creates the possibilities for sensemaking, knowledge creation, and purposeful action. The main contirution of the dissertation is to increase the understanding of the infulence of organizational issues by empirically showing that they are at least as important as technology for succeeding with software process improvement. This suggests that software organizations that want to prosper in the 21st century should synergistically combine technology with social collaboration to become learning software organizations.