Implementing Lean and Agile Software Development in Industry

University dissertation from Karlskrona : Blekinge Institute of Technology

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 development 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 understand 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 manufacturing 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 introduction 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 maintenance. The lean solutions were evaluated through case studies.