Implementing Lean and Agile Software Development in Industry
Total Page:16
File Type:pdf, Size:1020Kb
Ag Implemen I ABSTRACT le Sof Background: The software market is becoming Results: The agile situation was investigated more dynamic which can be seen in frequent- through a series of case studies. The baseline ImplemenTIng leAn And AgIle TI ly changing customer needs. Hence, software situation (plan-driven development) was eva- T companies need to be able to quickly respond luated and the effect of the introduction of agile w ng SofTwARe developmenT In InduSTRy to these changes. For software companies this practices was captured, followed by an in-depth AR means that they have to become agile with the analysis of the new situation. Finally, a novel ap- l objective of developing features with very short proach, Software Process Improvement through e e d lead-time and of high quality. A consequence of the Lean Measurement (SPI-LEAM) method, was A evelopmen this challenge is the appearance of agile and lean introduced providing a comprehensive measu- n software development. Practices and principles rement approach supporting the company to A of agile software development aim at increasing manage their work in process and capacity. SPI- nd flexibility with regard to changing requirements. LEAM focuses on the overall process integrating Lean software development aims at systemati- different dimensions (requirements, maintenance, cally identifying waste to focus all resources on testing, etc.). When undesired behavior is obser- Kai Petersen value adding activities. ved a drill-down analysis for the individual dimen- sions should be possible. Therefore, we provided T Objective: The objective of the thesis is to evalua- solutions for the main product development flow I te the usefulness of agile practices in a large-scale and for software maintenance. The lean solutions n Indu industrial setting. In particular, with regard to agi- were evaluated through case studies. le the goal is to understand the effect of migra- ting from a plan-driven to an agile development Conclusion: With regard to agile we found that approach. A positive effect would underline the the migration from plan-driven to agile develop- STR usefulness of agile practices. With regard to lean ment is beneficial. Due to the scaling of agile new software development the goal is to propose no- challenges arise with the introduction. The lean y vel solutions inspired by lean manufacturing and practices introduced in this thesis were percei- product development, and to evaluate their use- ved as useful by the practitioners. The practitio- fulness in further improving agile development. ners identified concrete decisions in which the lean solutions could support them. In addition, Method: The primary research method used the lean solutions allowed identifying concrete throughout the thesis is case study. As secon- improvement proposals to achieve a lean soft- dary methods for data collection a variety of ware process. approaches have been used, such as semi-struc- tured interviews, workshops, study of process documentation, and use of quantitative data. Kai Petersen Blekinge Institute of Technology Doctoral Dissertation Series No. 2010:04 2010:04 ISSN 1653-2090 School of Computing 2010:04 ISBN 978-91-7295-180-8 Implementing Lean and Agile Software Development in Industry Kai Petersen Blekinge Institute of Technology Doctoral Dissertation Series No 2010:04 Implementing Lean and Agile Software Development in Industry Kai Petersen School of Computing Blekinge Institute of Technology SWEDEN © 2010 Kai Petersen School of Computing Publisher: Blekinge Institute of Technology Printed by Printfabriken, Karlskrona, Sweden 2010 ISBN 978-91-7295-180-8 Blekinge Institute of Technology Doctoral Dissertation Series ISSN 1653-2090 urn:nbn:se:bth-00465 Q: What are the most exciting, promising software engineering ideas or techniques on the horizon? A: I don’t think that the most promising ideas are on the horizon. They are already here and have been for years, but are not being used properly. –David L. Parnas v vi Abstract Background: The software market is becoming more dynamic which can be seen in frequently changing customer needs. Hence, software companies need to be able to quickly respond to these changes. For software companies this means that they have to become agile with the objective of developing features with very short lead-time and of high quality. A consequence of this challenge is the appearance of agile and lean software development. Practices and principles of agile software development aim at increasing flexibility with regard to changing requirements. Lean software develop- ment aims at systematically identifying waste to focus all resources on value adding activities. Objective: The objective of the thesis is to evaluate the usefulness of agile practices in a large-scale industrial setting. In particular, with regard to agile the goal is to un- derstand the effect of migrating from a plan-driven to an agile development approach. A positive effect would underline the usefulness of agile practices. With regard to lean software development the goal is to propose novel solutions inspired by lean manufac- turing and product development, and to evaluate their usefulness in further improving agile development. Method: The primary research method used throughout the thesis is case study. As secondary methods for data collection a variety of approaches have been used, such as semi-structured interviews, workshops, study of process documentation, and use of quantitative data. Results: The agile situation was investigated through a series of case studies. The baseline situation (plan-driven development) was evaluated and the effect of the in- troduction of agile practices was captured, followed by an in-depth analysis of the new situation. Finally, a novel approach, Software Process Improvement through the Lean Measurement (SPI-LEAM) method, was introduced providing a comprehensive measurement approach supporting the company to manage their work in process and capacity. SPI-LEAM focuses on the overall process integrating different dimensions (requirements, maintenance, testing, etc.). When undesired behavior is observed a drill-down analysis for the individual dimensions should be possible. Therefore, we provided solutions for the main product development flow and for software mainte- nance. The lean solutions were evaluated through case studies. Conclusion: With regard to agile we found that the migration from plan-driven to agile development is beneficial. Due to the scaling of agile new challenges arise with the introduction. The lean practices introduced in this thesis were perceived as useful by the practitioners. The practitioners identified concrete decisions in which the lean solutions could support them. In addition, the lean solutions allowed identifying concrete improvement proposals to achieve a lean software process. vii viii Acknowledgements First and foremost, I would like to thank my supervisor and collaborator Professor Claes Wohlin for his support and feedback on my work, for the fruitful collaboration on papers, and for always responding to my questions at any time of day or night. I would also like to thank all colleagues at Ericsson AB for participating in my studies. These include participants in interviews, workshops, and in the TiQ analysis team. All of you have provided valuable input and feedback to my work despite your busy schedules, for which I am thankful. In particular, I also would like to express my gratitude to Eva Nilsson at Ericsson for her strong support and thus for making the implementations of the solutions presented in this thesis possible, and for providing important feedback. Thanks also go to PerOlof Bengtsson for his continuous support and commitment throughout my studies. The support from my friends and colleagues from the SERL and DISL research groups is also highly appreciated. In particular, I would like to thank Dejan Baca and Shahid Mujtaba for their collaboration on papers, and for the good times after work. Last but not least, I would like to express my sincere gratitude to my mother Frauke for always supporting me in what I wanted to achieve against all obstacles, and to my brother Stephan for always being there. This work was funded jointly by Ericsson AB and the Knowledge Foundation in Swe- den under a research grant for the project “Blekinge - Engineering Software Qualities (BESQ)” (http://www.bth.se/besq). ix x Overview of Papers Papers included in this thesis. Chapter 2. Kai Petersen. ’Is Lean Agile and Agile Lean? A Comparison Between Two Development Paradigms’, To be published in: Modern Software Engineering Concepts and Practices: Advanced Approaches; Ali Dogru and Veli Bicer (Eds.), IGI Global, 2010 Chapter 3. Kai Petersen, Claes Wohlin, and Dejan Baca. ’The Waterfall Model in Large-Scale Development’, Proceedings of the 10th Interna- tional Conference on Product Focused Software Development and Process Improve- ment (PROFES 2009), Springer, Oulu, Finland, pp. 386-400, 2009. Chapter 4. Kai Petersen and Claes Wohlin. ’The Effect of Moving from a Plan-Driven to an Incremental and Agile Development Approach: An Industrial Case Study’, Submitted to a journal, 2009. Chapter 5. Kai Petersen and Claes Wohlin. ’A Comparison of Issues and Advantages in Agile and Incremental Development Be- tween State of the Art and Industrial Case’. Journal of Systems and Software, 82(9), pp. 1479-1490, 2009. Chapter 6. Kai Petersen. ’An Empirical Study of Lead-Times in Incremental and Agile Development’, To ap- pear in: Proceedings of the International Conference on Software Process (ICSP 2010), 2010. Chapter 7. Kai Petersen and Claes Wohlin. ’Software Process Improvement through the Lean Measurement (SPI-LEAM) Method’. Journal of Systems and Software, in print, 2010. Chapter 8. Kai Petersen and Claes Wohlin. ’Measuring the Flow of Lean Software Development’, Software: Practice and Experi- ence, in print, 2010. Chapter 9. Kai Petersen. ’Lean Software Maintenance’, submitted to a conference, 2010. xi Papers that are related to but not included in this thesis. Paper 1. Kai Petersen. ’A Systematic Review of Software Productivity Measurement and Prediction’, submit- ted to a journal, 2010. Paper 2.