Monitoring Evolution of Code Complexity in Agile/Lean Software Development - A Case Study at Two Companies

One of the distinguishing characteristics of Agile and Lean software development is that software products “grow” with new functionality with relatively small increments. Continuous customer demands of new features and the companies’ abilities to deliver on those demands are the two driving forces behind this kind of software evolution. Despite the numerous benefits there are a number of risks associated with this kind of growth. One of the main risks is the fact that the complexity of the software product grows slowly, but over time reaches scales which makes the product hard to maintain or evolve. The goal of this paper is to present a measurement system for monitoring the growth of complexity and drawing attention when it becomes problematic. The measurement system was developed during a case study at Ericsson and Volvo Group Truck Technology. During the case study we explored the evolution of size, complexity, revisions and number of designers of two large software products from the telecom and automotive domains. The results show that two measures needed to be monitored to keep the complexity development under control - McCabe’s complexity and number of revisions.

[1]  Miroslaw Staron,et al.  Ensuring Reliability of Information Provided by Measurement Systems , 2009, IWSM/Mensura.

[2]  Mario Piattini,et al.  Managing software process measurement: A metamodel-based approach , 2007, Inf. Sci..

[3]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[4]  Sallie M. Henry,et al.  Software Structure Metrics Based on Information Flow , 1981, IEEE Transactions on Software Engineering.

[5]  Thomas Arts,et al.  Agile Collaborative Research: Action Principles for Industry-Academia Collaboration , 2011, IEEE Software.

[6]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[7]  Taghi M. Khoshgoftaar,et al.  Early Quality Prediction: A Case Study in Telecommunications , 1996, IEEE Softw..

[8]  Miroslaw Staron,et al.  Developing measurement systems: an industrial case study , 2011, J. Softw. Maintenance Res. Pract..

[9]  D. Wisell,et al.  Considerations when Designing and Using Virtual Instruments as Building Blocks in Flexible Measurement System Solutions , 2007, 2007 IEEE Instrumentation & Measurement Technology Conference IMTC 2007.

[10]  Patrik Berander,et al.  From Traditional to Streamline Development — opportunities and challenges , 2008 .

[11]  Raymond P. L. Buse,et al.  A metric for software readability , 2008, ISSTA '08.

[12]  David Parmenter,et al.  Key Performance Indicators: Developing, Implementing,and Using Winning KPIs , 2007 .

[13]  Tsun Chow,et al.  A survey study of critical success factors in agile software projects , 2008, J. Syst. Softw..

[14]  B. Kitchenham,et al.  Measurement Modeling Technology , 2003, IEEE Softw..

[15]  Darrel C. Ince,et al.  A critique of three metrics , 1994, J. Syst. Softw..

[16]  Andreas Zeller,et al.  Mining metrics to predict component failures , 2006, ICSE.

[17]  Yingxu Wang,et al.  On the Cognitive Complexity of Software and its Quantification and Formal Measurement , 2009, Int. J. Softw. Sci. Comput. Intell..

[18]  Austin Melton,et al.  A Synthesis of Software Science Measures and the Cyclomatic Number , 1988, IEEE Trans. Software Eng..

[19]  Ming Gu,et al.  Predicting Defective Software Components from Code Complexity Measures , 2007, 13th Pacific Rim International Symposium on Dependable Computing (PRDC 2007).

[20]  Barry Boehm,et al.  A view of 20th and 21st century software engineering , 2006, ICSE.

[21]  G. Susman,et al.  An Assessment of the Scientific Merits of Action Research. , 1978 .

[22]  Witold Pedrycz,et al.  A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[23]  Nicholas A. Kraft,et al.  Cyclomatic Complexity and Lines of Code: Empirical Evidence of a Stable Linear Relationship , 2009, J. Softw. Eng. Appl..

[24]  Chris F. Kemerer,et al.  Cyclomatic Complexity Density and Software Maintenance Productivity , 1991, IEEE Trans. Software Eng..

[25]  G.I.U.S. Perera,et al.  Enhanced agile software development — hybrid paradigm with LEAN practice , 2007, 2007 International Conference on Industrial and Information Systems.

[26]  M. Shepperd,et al.  A critique of cyclomatic complexity as a software metric , 1988, Softw. Eng. J..

[27]  Bill Curtis,et al.  Measuring the Psychological Complexity of Software Maintenance Tasks with the Halstead and McCabe Metrics , 1979, IEEE Transactions on Software Engineering.

[28]  Todd Little,et al.  Context-adaptive agility: managing complexity and uncertainty , 2005, IEEE Software.

[29]  Akito Monden,et al.  Software quality analysis by code clones in industrial legacy software , 2002, Proceedings Eighth IEEE Symposium on Software Metrics.

[30]  Trevor Wood-Harper,et al.  A critical perspective on action research as a method for information systems research , 1996, J. Inf. Technol..

[31]  Petra Bosch-Sijtsema,et al.  From integration to composition: On the impact of software product lines, global development and ecosystems , 2010, J. Syst. Softw..