Simulation of software maintenance process, with and without a work‐in‐process limit

A software maintenance process is important for reducing maintenance effort and for improving software quality. In recent years, the Lean–Kanban approach has been widely applied in software practice including software maintenance. This approach minimizes Work‐in‐Progress (WIP), which is the number of items that are worked on by the team at any given time, thus improving the maintenance process. In this paper, we describe our simulation studies, which show that the Lean–Kanban approach can indeed help reduce the average time needed to complete maintenance requests. We develop a process simulator that can simulate both existing maintenance processes that do not use a WIP limit and that adopt it. We perform two case studies using real maintenance data collected from a Microsoft project and from a Chinese software firm. The main results of our study are twofold. First, we demonstrate that it is possible to effectively model and simulate, using actors and events, a maintenance process where a flow of issues is processed through a sequence of activities, correctly reproducing key statistics of real data. Second, our results confirm that the WIP‐limited process could be useful to increase the efficiency of software maintenance, as reported in previous industrial practices. Copyright © 2013 John Wiley & Sons, Ltd.

[1]  W. Shadish,et al.  Experimental and Quasi-Experimental Designs for Generalized Causal Inference , 2001 .

[2]  Raymond J. Madachy,et al.  Modeling kanban processes in systems engineering , 2012, 2012 International Conference on Software and System Process (ICSSP).

[3]  大野 耐一,et al.  Just-in-time for today and tomorrow , 1988 .

[4]  Daniel Roos,et al.  The machine that changed the world : the story of lean production , 1991 .

[5]  Raymond Madachy,et al.  Software Process Dynamics , 2008 .

[6]  Michele Marchesi,et al.  A Comparative Study of Scrum and Kanban Approaches on a Real Case Study Using Simulation , 2012, XP.

[7]  Weiming Shen,et al.  Implementing a hybrid simulation model for a Kanban-based material handling system , 2008 .

[8]  Watts S. Humphrey,et al.  Introduction to the Team Software Process , 1999 .

[9]  Stuart E. Madnick,et al.  Software Project Dynamics: An Integrated Approach , 1991 .

[10]  Mary Poppendieck,et al.  Lean Software Development: An Agile Toolkit , 2003 .

[11]  Chin-Yu Huang,et al.  Staffing Level and Cost Analyses for Software Debugging Activities Through Rate-Based Simulation Approaches , 2009, IEEE Transactions on Reliability.

[12]  B. Curtis,et al.  Substantiating programmer variability , 1981, Proceedings of the IEEE.

[13]  RAY W. WOLVERTON,et al.  The Cost of Developing Large-Scale Software , 1974, IEEE Transactions on Computers.

[14]  Marco Melis,et al.  Evaluating the impact of test-first programming and pair programming through software process simulation , 2006, Softw. Process. Improv. Pract..

[15]  Marco Melis,et al.  Modeling and simulation of open source development using an agile practice , 2006, J. Syst. Archit..

[16]  Raymond J. Madachy,et al.  Effectiveness of kanban approaches in systems engineering within rapid response environments , 2012, CSER.

[17]  Giuliano Antoniol,et al.  Assessing staffing needs for a software maintenance project through queuing simulation , 2004, IEEE Transactions on Software Engineering.

[18]  Mary Poppendieck,et al.  Implementing Lean Software Development: From Concept to Cash (The Addison-Wesley Signature Series) , 2006 .

[19]  N.S. Barghouti,et al.  A case study in modeling a human-intensive, corporate software process , 1994, Proceedings of the Third International Conference on the Software Process. Applying the Software Process.

[20]  Dag I. K. Sjøberg,et al.  Quantifying the Effect of Using Kanban versus Scrum: A Case Study , 2012, IEEE Software.

[21]  Pekka Abrahamsson,et al.  On the Impact of Kanban on Software Project Work: An Empirical Case Study Investigation , 2011, 2011 16th IEEE International Conference on Engineering of Complex Computer Systems.

[22]  R. D. Hurrion,et al.  An example of simulation optimisation using a neural network metamodel: finding the optimum number of kanbans in a manufacturing system , 1997 .

[23]  Giuliano Antoniol,et al.  Search-based techniques applied to optimization of project planning for a massive maintenance project , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[24]  Loren Paul Rees,et al.  A SIMULATION ANALYSIS OF THE JAPANESE JUST‐IN‐TIME TECHNIQUE (WITH KANBANS) FOR A MULTILINE, MULTISTAGE PRODUCTION SYSTEM , 1983 .

[25]  Peter Köchel,et al.  Kanban optimization by simulation and evolution , 2002 .

[26]  Oisín Cawley,et al.  "Leagile" software development: An experience report analysis of the application of lean approaches in agile software development , 2012, J. Syst. Softw..

[27]  Michele Marchesi,et al.  Studying Lean-Kanban Approach Using Software Process Simulation , 2011, XP.

[28]  Michael A. Cusumano,et al.  Lean Software Development: A Tutorial , 2012, IEEE Software.

[29]  Michele Marchesi,et al.  Size estimation of Web applications through Web CMF Object , 2012, 2012 3rd International Workshop on Emerging Trends in Software Metrics (WETSoM).

[30]  Claes Wohlin,et al.  Measuring the flow in lean software development , 2011, Softw. Pract. Exp..