Lean Configuration Management

3 Introduction.4 Software Configuration Management . 5 CM Definitions . 5 Traditional CM Practices . 5 Agile Development.7 CM in Agile Methods . 7 Lean Principles.7 Agile Manifesto.7 Roles.8 Agile Practices.8 Lean CM.11 CM Performance.11 Ad Hoc CM . 11 Defined CM.12 Automated CM . 13 Lean CM.13 Case studies . 14 Creating Value with Lean CM.15 Conclusion . 17 REFERENCES . 18 Lean Configuration Management Copyright © 2005 Softhouse Consulting. All rights reserved. 3 Abstract Configuration management, as a discipline for supporting software development, has been around for half a century and has evolved into standard practice within traditional software development processes. One of the key purposes of configuration management is to control changes made to the software product. Agile development methods are becoming increasingly popular and claim to embrace change. These methods put emphasis on responsiveness to change rather than controlling change. How can these contradicting methodologies co-exist in the one and same project? This paper investigates the integration of configuration management and agile methods by introducing the concept of Lean Configuration Management, and shows how this can support an increased return on investment of the software project. While traditional configuration management evolves around controlling changes of a forecasted plan, lean configuration management is about handling changes in an adaptive way as well as supporting the values of agile development and lean principles. Lean Configuration Management Copyright © 2005 Softhouse Consulting. All rights reserved. 4 Introduction Configuration management has evolved from the beginnings of software engineering in the 1960’s as a key discipline, required to assert control over changes and handle coordination between concurrent work by individuals and teams. As configuration management has evolved from a need of control, this contradicts the values of the Agile Methodologies [13] and Lean manufacturing [4] that emphasize responding to change rather than controlling change. In this paper we discuss experiences gained from CM activities in two industrial organizations over a period of more than a decade, that lead us to the conclusion that by allowing the CM activities to support agile principles we can achieve several interesting effects, both as a direct result of the CM activities and the effects of the agile practices supported. Specifically, by making CM practices support agile methods and lean principles we assert that it is possible to reduce the overhead involved in CM activities, increase the possibility of rapid feedback through more frequent iteration deliveries and to be able to control more rapid change than traditional CM activities can support. The results of these effects should ultimately lead to increased ROI for the software project. The paper is structured as follows. In Section 2 we provide a short oversight of Software Configuration Management (SCM), in section 3 we discuss agile principles and their implications on SCM, in Section 4 we present a concept of Lean Configuration Management building on the discussion in Section 4 and experiences from the industrial cases presented. Section 5 summarizes our conclusions. Lean Configuration Management Copyright © 2005 Softhouse Consulting. All rights reserved. 5 Software Configuration Management