Enabling Software Process Improvement in Agile Software Development Teams And
Total Page:16
File Type:pdf, Size:1020Kb
ESPOO 2006 VTT PUBLICATIONS 618 VTT PUBLICATIONS 618 Agile software development has challenged the traditional ways of delivering software as it provides a very different approach to software development. In recent decades, software process improvement (SPI) has Enabling Software Process Improvement in Agile Software Development Teams and... Enabling Software Process Improvement in Agile been widely studied in the context of traditional software development, and its strengths and weaknesses have been recognised. As organisations increasingly adopt agile software development methodologies to be used alongside traditional methodologies, new challenges and opportunities for SPI are also emerging. One challenge is that traditional SPI methods often emphasise the continuous improvement of organisational software development processes, whereas the principles of agile software development focus on iterative adaptation and improvement of the activities of individual software development teams to increase effectiveness. The focus of this thesis is twofold. The first goal is to study how agile software development teams can conduct SPI, according to the values, principles and practices of agile software development, in tandem with the successful factors of traditional SPI. The second goal is to study how the team-centred SPI of agile software development and the traditional view of organisational improvement can be integrated to co-exist in a mutually- beneficial manner in software development organisations. The main research methodology in this thesis is action research (AR). The empirical Outi Salo data is taken from six agile software development case projects. The results of this research have been published in a total of seven conference, and journal, papers. Enabling Software Process Improvement in Agile Software Development Teams and Organisations Tätä julkaisua myy Denna publikation säljs av This publication is available from VTT VTT VTT PL 1000 PB 1000 P.O. Box 1000 02044 VTT 02044 VTT FI-02044 VTT, Finland Puh. 020 722 4404 Tel. 020 722 4404 Phone internat. +358 20 722 4404 Outi Salo Faksi 020 722 4374 Fax 020 722 4374 Fax +358 20 722 4374 ISBN 951–38–6869–9 (soft back ed.) ISBN 951–38–6870–2 (URL: http://www.vtt.fi/inf/pdf/) ISSN 1235–0621 (soft back ed.) ISSN 1455–0849 (URL: http://www.vtt.fi/inf/pdf/) VTT PUBLICATIONS 618 Enabling Software Process Improvement in Agile Software Development Teams and Organisations Outi Salo Academic Dissertation to be presented with the assent of the Faculty of Science, University of Oulu, for public discussion in the Auditorium L10, Linnanmaa, on January 12th, 2007, at noon. ISBN 951–38–6869–9 (soft back ed.) ISSN 1235–0621 (soft back ed.) ISBN 951–38–6870–2 (URL: http://www.vtt.fi/publications/index.jsp) ISSN 1455–0849 (URL: http://www.vtt.fi/publications/index.jsp) Copyright © VTT Technical Research Centre of Finland 2006 JULKAISIJA – UTGIVARE – PUBLISHER VTT, Vuorimiehentie 3, PL 1000, 02044 VTT Puh. vaihde 020 722 111, faksi 020 722 4374 VTT, Bergsmansvägen 3, PB 1000, 02044 VTT Tel. växel 020 722 111, fax 020 722 4374 VTT Technical Research Centre of Finland, Vuorimiehentie 3, P.O.Box 1000, FI-02044 VTT, Finland, phone internat. +358 20 722 111, fax + 358 20 722 4374 VTT, Kaitoväylä 1, PL 1100, 90571 OULU Puh. vaihde 020 722 111, faksi 020 722 2320 VTT, Kaitoväylä 1, PB 1100, 90571 ULEÅBORG Tel. växel 020 722 111, fax 020 722 2320 VTT Technical Research Centre of Finland, Kaitoväylä 1, P.O. Box 1100, FI-90571 OULU, Finland, phone internat. +358 20 722 111, fax +358 20 722 2320 Edita Prima Oy, Helsinki 2006 Salo, Outi. Enabling Software Process Improvement in Agile Software Development Teams and Organisations. Espoo 2006. VTT Publications 618. 149 p. + app. 96 p. Keywords software process improvement, SPI, agile software development, iterative improvement process Abstract Agile software development has challenged the traditional ways of delivering software as it provides a very different approach to software development. In recent decades, software process improvement (SPI) has been widely studied in the context of traditional software development, and its strengths and weaknesses have been recognised. As organisations increasingly adopt agile software development methodologies to be used alongside traditional methodologies, new challenges and opportunities for SPI are also emerging. One challenge is that traditional SPI methods often emphasise the continuous improvement of organisational software development processes, whereas the principles of agile software development focus on iterative adaptation and improvement of the activities of individual software development teams to increase effectiveness. The focus of this thesis is twofold. The first goal is to study how agile software development teams can conduct SPI, according to the values, principles and practices of agile software development, in tandem with the success factors of traditional SPI. The second goal is to study how the team-centred SPI of agile software development and the traditional view of organisational improvement can be integrated to co-exist in a mutually-beneficial manner in software development organisations. The main research methodology in this thesis is action research (AR). The empirical data is taken from six agile software development case projects. The results of this research have been published in a total of seven conference, and journal, papers. The principal result of the study of project level SPI is an Iterative Improvement Process which provides systematic, yet agile, SPI mechanisms for agile software development teams. This process iteratively evolved during the series of case 3 projects. The empirical evidence of the project level research demonstrates the ability and willingness of agile software development teams to iteratively improve their daily working practices by making minor and simple, yet effective and visible, improvements during their projects. The research data further indicates the positive effect of iterative team reflection on the satisfaction of project teams, and confirms the need for systematic mechanisms to carry out SPI activities in agile project teams. Furthermore, the data shows that external support for the improvement activities proved to be highly significant for the success of SPI within agile project teams. The study of organizational SPI initially focused on integrating agile software development and continuous improvement of existing organisational practices. Arising from this stage, several changes to traditional SPI activities were suggested in order to establish a mutually-beneficial co-existence between organisational SPI stakeholders and agile software development teams. During the research a framework for deploying agile practices in organisations was developed. In this novel framework, the Iterative Improvement Process provides a mechanism for feedback between the agile software development teams and continuous organisational improvement activities. The research data further indicates that documented and validated knowledge arising from the Iterative Improvement Processes of agile software development teams can be beneficial in other contexts, such as in analysing and establishing future SPI initiatives in software development organisations. 4 Preface My interest in software process improvement (SPI) developed in the late 1990s when I was doing my master’s thesis while working as a System Designer in Elbit Oy. Thus, firstly, I would like to thank my former employer for providing me with such an interesting topic of research that still interests me. In both my doctoral and my master’s theses, I have been privileged to have Professor Samuli Saukkonen from the University of Oulu as my supervisor. In addition to his supervision, I am also grateful for his encouragement to pursue a career in research. I would like to express my sincere gratitude to Professor Pekka Abrahamsson – my supervisor at VTT (VTT Technical Research Centre of Finland) – for his contribution in supporting and setting the scene for my research. At VTT, I have been provided with an ideal environment for conducting my research. In 2002, VTT launched the UUTE project (New Software Technologies) to examine agile software development methodologies, which was where I started the research for this thesis. TEKES (National Technology Agency of Finland) has been an important funder of the ICAROS (Integrating End-User Needs and Business Competence to Mobile Software Development Concepts) and Agile ITEA I and II projects (Agile Software Development of Embedded Systems) where this research has been carried out. I would like to sincerely thank all the support personnel of VTT for making our research work so much easier. On the language front, I wish to thank language consultants Seppo Keränen and Hilary Keller for their work on my thesis. Furthermore, I am truly grateful for the very fruitful discussions, valuable feedback, and support from my fellow-researchers at VTT, especially the members of the agile research projects, former OTE research group, as well as the Process Innovations and Mobile Services and Applications research teams with whom I have had the great privilege to work with during the course of this study. My special thanks to Annukka Mäntyniemi and Minna Pikkarainen for their friendship and encouragement throughout. I would also like to mention Matias Vierimaa, Dr. Seija Komi-Sirviö and Dr. Tua Huomo who have all encouraged me to finish this work and allocated me time in which to do